0

在弄清楚这一点时遇到了一些麻烦。如果第二个和第三个中的复选框td都未选中,则禁用第四个中的复选框。

$('#allergies tbody tr').each(function () {
  if ($('td:eq(1) input[type="checkbox"]:not(:checked)', $(this)).length > 0 
      && $('td:eq(2) input[type="checkbox"]:not(:checked)', $(this)).length > 0) {
      $("td:eq(3) input", $(this)).attr('disabled', false);
  }
});
4

2 回答 2

1
$('#allergies tbody tr').each(function () {
  if ($('td:eq(1) input[type="checkbox"]:not(:checked)').length > 0 
      && $('td:eq(2) input[type="checkbox"]:not(:checked)').length > 0) {
      $("td:eq(3) input").prop('disabled', true);
  }
});

到 tr 使用中的特定的

$('#allergies tbody tr').each(function () {
  if ($('td:eq(1) input[type="checkbox"]:not(:checked)', $(this)).length > 0 
      && $('td:eq(2) input[type="checkbox"]:not(:checked)', $(this)).length > 0) {
      $("td:eq(3) input", $(this)).prop('disabled', true);
  }
});
于 2012-11-01T16:45:20.007 回答
0

您的逻辑是正确的,但可读性较差..将它们分成较小的块

$('#allergies tbody tr').each(function () {
    var $this  = $(this);
    var chk1 = $this.find('td:eq(1) input[type="checkbox"]').is(':checked');
    var chk2 = $this.find('td:eq(2) input[type="checkbox"]').is(':checked');

    // If both are false then disable else 
    // enable them
    if(chk1 === false && chk2 === false){
       $this.find('td:eq(3) input').prop('disabled', true);
    }
    else{
       $this.find('td:eq(3) input').prop('disabled', false);
    }
});
于 2012-11-01T16:46:43.940 回答