Jquery 函数内部的计数器变量
我有一个基本的HTML网格,如下所示:Jquery 函数内部的计数器变量,jquery,Jquery,我有一个基本的HTML网格,如下所示: <table> <tr id="player1_race"> <td class="active"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>
<table>
<tr id="player1_race">
<td class="active"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
由于某些原因,无法访问计数器变量。计数器变量在代码中声明两次是不必要的 首先删除活动类并为当前类添加类
var counter = 0;
$("#player1_race").click(function() {
counter = counter + 1;
$('#player1_race td.active').removeClass('active');
$(this).find("td").eq(counter).addClass('active');
});
您有几个问题。首先,在单击处理程序中使用
var
会更改变量的范围,因此需要删除它。其次,您没有正确地将变量连接到字符串选择器。在这种情况下,最好还是使用eq()
。最后,元素的索引从0
开始,因此计数器应该从该值开始。试试这个:
var counter = 0;
$("#player1_race").click(function() {
counter++;
$("#player1_race > td").removeClass('active').eq(counter).addClass('active')
});
当您在单击回调函数中的“计数器”前面放置“var”时,您正在重新定义“counter”,因此它不会被定义,因此语句var counter=counter+1将被解释为var counter=undefined+1。只需删除var即可解决问题。
var counter = 0;
$("#player1_race").click(function() {
counter++;
$("#player1_race > td").removeClass('active').eq(counter).addClass('active')
});