Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Javascript 无法更改jquery函数中的类_Javascript_Jquery - Fatal编程技术网

Javascript 无法更改jquery函数中的类

Javascript 无法更改jquery函数中的类,javascript,jquery,Javascript,Jquery,我有这个功能: $('.circleShape').click(function(){ var colno = $(this).attr('class').substring(25, 30); for (var i = (cols-1); i >=0 ; i--) { //cols is a number of columns on the board if ($(colno).eq(i).hasClass('circleInitial')) {

我有这个功能:

  $('.circleShape').click(function(){
    var colno = $(this).attr('class').substring(25, 30);
    for (var i = (cols-1); i >=0 ; i--) { //cols is a number of columns on the board
      if ($(colno).eq(i).hasClass('circleInitial')) {
        alert('old color');
        $(colno).eq(i).removeClass('circleInitial').addClass('circlePlayerOne');
        break;
      }
    }
  });
如果单击了列的任何元素,我想更改同一列中尚未更改的最低元素的类。但是$colno语句没有抓住必要的元素。我如何实现这一点?我三天前才开始学习JS和jQuery,所以我自己也不明白。 这是HTML中的正文内容

<body>
    <div class="container">
      <div class="jumbotron">
        <h2>Welcome to Connect Four!</h1>
        <h3>The object of this game is to connect four of your chips in a row!</h3>

      </div>
    </div>
    <table id='board'>

    </table>
    <script src='js/jquery-3.2.1.js'></script>
    <script src='js/connect_four.js'></script>
  </body>
实际上,我是这样生成表的:

  function initBoard(){
  var chip = "<td class='chip'><div class='circleShape circleInitial'> </div></td>";
  var chips = Array(cols).fill(chip);
  chips = "<tr>" + chips + "/tr";
  $('#board').html(Array(rows).fill(chips));
  for (var i = 0; i < chipsTotal; i++) {
    var col='col' + (i%cols).toString();
    var row='row' + (~~(i/cols)).toString()
    $('.chip > div').eq(i).addClass(col).addClass(row);
  };

查找单击的td的索引和tbody的最后一行。然后将最后一行中tr的索引与找到的索引匹配

$td.clickfunction{ var index=$this.index; var lastRow=$this.closest'tbody'。查找'tr'。last; var colEnd=lastRow.find'td'.eqindex; console.logcolEnd.text; } 演示1 演示2 演示3 演示4 演示5 演示6 演示7 演示8 演示9 演示10 演示11 演示12 演示13 演示14 演示15
也粘贴HTML。请也添加HTML标记。如果您可以创建一个工作代码段,效果会更好。或者一个jsfiddle总是怀疑你的选择器。检查它们是否返回您认为它们通过运行$selector.length执行的元素-如果为0,这就是您的问题;你瞄准的元素是不存在的。colno似乎是一个字符串,因此将其传递给$似乎是可疑的。@Kiran Dash抱歉,我还不能。如果没有的内容,即使只足以重现您的问题,这个问题仍然是荒谬和无法回答的:请参阅指南,了解我们需要了解的HTML内容,JavaScript/jQuery等。如果您可以发布生成的HTML结构,可能会有更多帮助。这种方式更新了答案。