我正在使用jQuery创建搜索栏,我的代码粘贴在下面

小提琴:https://jsfiddle.net/fpLf1to4/

var inputSearch     = $('.searchInput').hide();
var searchArray     = ['s','e','a','r','c','h'];
var searchReturn    = '';

$('#search').on('click', function(){

    $(inputSearch).fadeToggle(500).focus();


    for(var i = 0 ; i < searchArray.length ; i++){

        searchReturn = searchReturn + searchArray[i];

    }

    $(inputSearch).attr('placeholder', searchReturn[0]);

});


注意:现在,我仅将数组的第一个索引用于输入属性。

$(inputSearch).attr('placeholder', searchReturn[0]);

现在,每隔一秒钟我要更新我的attr()

$(inputSearch).attr('placeholder', searchReturn[0] + searchReturn[1]);

下一秒

$(inputSearch).attr('placeholder', searchReturn[0] + searchReturn[1] + searchReturn[2]);

等等 ...

最佳答案

您必须使用setInterval函数,而不是for循环。这是您可以执行的操作:

$('#search').on('click', function(){
        $(inputSearch).fadeToggle(500).focus();

        var i = 0;
        var interval = setInterval(function() {
            searchReturn = searchReturn + searchArray[i];
            $(inputSearch).attr('placeholder', searchReturn);
            if(i == searchArray.length - 1) {
              clearInterval(interval)
            }
            i++;
        }, 2000);

    });


这是小提琴:https://jsfiddle.net/fpLf1to4/1/

关于javascript - 如何使用jQuery处理数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32423019/

10-09 20:58