Javascript 使用for循环变量更改html类的名称
我有几个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循环,它将遍历这些类名,将索引添加
<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技巧更新了你的小提琴,看看。代码目前不起作用,但这不是我的重点(希望你能学到一些技巧)。干杯