-2

当我点击 h2 时,我试图用它的数组索引更新每个按钮的 html。

我尝试使用 for 循环,但它并没有只更新每个按钮 #1、3,但 2 和 4 保持不变。我究竟做错了什么?谢谢

演示:http: //jsfiddle.net/BVmUL/96/

HTML

<div class='container text-center'>
    <h2>Click me to toggle the button</h2>
    <button type='submit' class='btn btn-primary btn-large'>Test</button>
    <button type='submit' class='btn btn-danger btn-large'>Test</button>
    <button type='submit' class='btn btn-success btn-large'>Test</button>
    <button type='submit' class='btn btn-info btn-large'>Test</button>
</div>

JS

<script>
var buttons = [
    $("button:eq(0)"), 
    $("button:eq(1)"), 
    $("button:eq(2)"), 
    $("button:eq(3)")
];

$("h2").click(function(){
    for(i = 0; i < 3; i++) {
        buttons[i].text("Array element: " + i++);
    }
});
</script>
4

5 回答 5

3

那是因为你在循环的中间递增

buttons[i].text("Array element: " + i++);

将其更改为

buttons[i].text("Array element: " + i);
于 2013-10-27T17:48:02.940 回答
2

因为你i++在循环里面。

buttons[i].text("Array element: " + i++);

做了

buttons[i].text("Array element: " + i);
于 2013-10-27T17:48:22.873 回答
2
var buttons = [
    $("button:eq(0)"), 
    $("button:eq(1)"), 
    $("button:eq(2)"), 
    $("button:eq(3)")
];

$("h2").click(function(){
    for(i = 0; i < 4; i++) { // here
        buttons[i].text("Array element: " + (i + 1)); // and here
    }
});
于 2013-10-27T17:51:44.823 回答
1
for(i = 0; i < 3;) {
    buttons[i].text("Array element: " + i++);
}

如果您想在循环中递增,请在 for 语句中删除第三个声明。否则你会增加两次。

于 2013-10-27T17:59:15.547 回答
0
 for(i = 0; i < 3; i++) {
    buttons[i].text("Array element: " + i++);
}

将其更改为

 for(i = 0; i < 4; i++) {
    buttons[i].text("Array element: " + i);
}

请注意,您犯了两个错误,一个是只循环 3 个元素,另一个是 i 增加两次。

于 2013-10-27T17:57:47.723 回答