我在下面的代码有问题

$('.paron').change(function() {
   if($(this).is(":checked")) {
          var moduleid = <?php echo $moduleid; ?>;
                var studentid = $(this).attr('id');
                var weeknum = <?php echo $weeknum; ?>;

                undisableTxt(studentid);

             }
       });


因此,我采用具有id的某个trinput并将其发送给函数。到目前为止一切都很好。
但是,当用户check input [checkbox]
当他取消检查时,我怎样才能将id发送给另一个功能???

我尝试了以下但没有运气

   $('.paron').change(function() {
if($(this).is(":checked")) {
     var moduleid = <?php echo $moduleid; ?>;
     var studentid = $(this).attr('id');
     var weeknum = <?php echo $weeknum; ?>;

             undisableTxt(studentid);

      } else {
        disableTxt(studentid); //error for undefined variable student id.
      }
  });


所以我得到未定义的studentid的错误。仅供参考,每行都有另一个ID。

最佳答案

变量“ studentId”在您的else块中不存在。同样,您不应该在块中使用var定义变量,因为var不在块级别作用域变量,因此请使用let或const。我还设置了$ this,以节省往返DOM的性能。

在jQuery中,您会这样做。

$('.paron').change(function() {
  const $this = $(this);
  const studentid = $this.attr('id');

  if($this.is(":checked")) {
    // removed for brevity, but using let or const
    undisableTxt(studentid);
  } else {
    disableTxt(studentid);
  }
});

10-02 12:58
查看更多