Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 函数内部的计数器变量_Jquery - Fatal编程技术网

Jquery 函数内部的计数器变量

Jquery 函数内部的计数器变量,jquery,Jquery,我有一个基本的HTML网格,如下所示: <table> <tr id="player1_race"> <td class="active"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td>

我有一个基本的HTML网格,如下所示:

<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')
});