Javascript 使用for循环变量更改html类的名称

Javascript 使用for循环变量更改html类的名称,javascript,jquery,html,Javascript,Jquery,Html,我有几个html类在类名中递增,例如: <div class="chicken1"> <b></b> </div> <div class="chicken2"> <b></b> </div> <div class="chicken3"> <b></b> </div> 我正在尝试编写一个for循环,它将遍历这些类名,将索引添加

我有几个html类在类名中递增,例如:

<div class="chicken1">
    <b></b>
</div>
<div class="chicken2">
    <b></b>
</div>
<div class="chicken3">
    <b></b>
</div>

我正在尝试编写一个for循环,它将遍历这些类名,将索引添加到每个类名的末尾,然后以2s延迟调用一个函数

for ( var i = 1; i <= 3; i++ ) {
    setTimeout(function() {
        myFunction(".chicken" + i + " b");
    }, 2000 * i);
}

for(var i=1;i是否使用jquery?试试看

for ( var i = 1; i <= 3; i++ ) {
    myFunction($(".chicken" + i + " b"));
}

for(var i=1;i这对我来说很好:

<html>
<head>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
</head>
<body>

<div class="chicken1">
    <b></b>
</div>
<div class="chicken2">
    <b></b>
</div>
<div class="chicken3">
    <b></b>
</div>


<script>
    $( document ).ready(function() {
        for ( var i = 1; i <= 3; i++ ) {
            $(".chicken"+i+" b").html("Hey " + i);
        }
    });
</script>

</body>
</html>

$(文档).ready(函数(){

对于(var i=1;i而言,问题实际上是在循环中调用的
setTimeout()
;要正确执行此操作,必须关闭循环变量:

for (var i = 1; i <= 6; ++i) {
    setTimeout((function(i) {
        return function() {
            myFunction(".chicken" + i + " i");
        };
    })(i), i * 2000);
}

用于(var i=1;i 1.您的myFunction在哪里?2.您正在传递一个字符串而不是一个DOM。预期结果是什么?myFunction是一个高于代码的函数……我提供它不是为了简化问题。我很好奇,想知道您为什么要这样做?这有一个坏模式的所有症状。@ramr请添加此函数,让我们看看w你的代码是错误的,因为目前我们在运行你的代码时得到的唯一结果是
myFunction不是一个函数
,所以我没有帮助。@ramr我用一些JS技巧更新了你的小提琴,看看。代码目前不起作用,但这不是我的重点(希望你能学到一些技巧)。干杯