2016-03-29 81 views
-2

這是我用來檢查放置在行第一列的複選框的代碼片段。選擇除2列以外的所有行

$('[id*=GridView1] tr:not(:first)').each(function (index) { 

    // Selection of entire row 
    $(this).on('click', function (e) { 

     // Check status of checkbox 
     if ($(this).find("input:checkbox").attr('checked')) { 
      $(this).find("input:checkbox").attr('checked', false); 
     } 
     else 
      $(this).find('input:checkbox').attr("checked", true); 
    }); 
}); 

但我想避免在我的gridview的特定列上的點擊動作,例如(最後一列和第三列)。我無法爲「此」元素應用選擇。你能舉幾個例子嗎?請。 預先感謝您

回答

0

您可以查看列的索引處於回調是這樣的:

$('[id*=GridView1] tr:not(:first)').each(function (index) { 
    $(this).on('click', function (e) { 
     var index = $(event.target).closest("td").index(); 
     // you may now test if index is 3 or the last one 

另一種方法是不綁定到行,但到細胞

$('[id*=GridView1] tr:not(:first) td').each(function (index) { 
    var $cell = $(this); 
    $cell.on('click', function (e) { 
     var $row = $cell.closest("tr"); 

請注意,如果您有大表,您可能更願意使用委託來減少綁定的數量。

0
$('[id*=GridView1] tr:not(:first)').each(function (index) { 
    var row = $(this); 
    var checkbox = row.find("input:checkbox"); 

    row.children('td:not(:last-child)').each(function(ndx) { //skip last cell 
     if(ndx == 2) return true; //skip third cell 

     $(this).on('click', function (e) { 

      // Check status of checkbox 
      if (checkbox.attr('checked')) { 
       checkbox.attr('checked', false); 
      } 
      else 
       checkbox.attr("checked", true); 
     }); 
    }); 
}); 
+0

這是一個很好的解決方案。非常感謝你。 但是,如果我想排除一個列的區域