2017-10-16 45 views
0

我想設置複選框在第二列記錄匹配時被選中。當記錄與第二列匹配時,必須設置複選框被檢查爲同一行。如何設置基於第二列選中的複選框td是否使用JQuery匹配?

$("#ContentPlaceHolder1_GridView1 tr td:nth-child(2)").each(function() { 
          //alert($(this).text()); 
    for(var i = 0;i<data.d.length;i++){ 
     if ($(this).text() === data.d[i]) { // "222" === "222" 
      alert('data =' + data.d[i] + ' $(this).text() = ' + $(this).text()); 

      //here I have to set checkbox 
     } 
    } 
}); 

這裏是我的html代碼:

<table id="ContentPlaceHolder1_GridView1"> 
<tbody> 
    <tr> 
     <th> </th>    //No column header for checkbox 
     <th>Documnet NO</th> 
    </tr> 
    <tr> 
     <td><input id="Checkbox1" class="checkBoxClass" type="checkbox"></td> 
     <td>111</td> 
    </tr> 
    <tr> 
     <td><input id="Checkbox2" class="checkBoxClass" type="checkbox"></td> 
     <td>222</td> 
    </tr> 
    <tr> 
     <td><input id="Checkbox3" class="checkBoxClass" type="checkbox"></td> 
     <td>333</td> 
    </tr> 
</body> 

直到現在警報的匹配記錄工作

+1

爲什麼你有使用「Checkbox4」多個ID? – juntapao

回答

1

您可以使用DOM遍歷方法爲目標:checkbox,然後用.prop(key, value)設置其屬性

$("#ContentPlaceHolder1_GridView1 tr td:nth-child(2)").each(function() { 
    for (var i = 0; i < data.d.length; i++) { 
     if ($(this).text() === data.d[i]) { 
      $(this).closest('tr') //target common parent i.e. TR 
      .find(':checkbox') //Target Checkbox 
      .prop('checked', true); 
     } 
    } 
}); 
0

$(this)是指TD元素的上下文。你可以

1)找到兄弟td元素

2)找到在TD輸入元素

3)設置複選框選中狀態爲真

$("#ContentPlaceHolder1_GridView1 tr td:nth-child(2)").each(function() { 
for(var i = 0;i<data.d.length;i++){ 
    if ($(this).text() === data.d[i]) {  
     $(this).siblings().find(':checkbox').prop('checked' , true); 
    } 
}); 

注:你也已經得到輸入元素的重複ID。 ID必須是唯一的。您無法使用ID選擇器使用相同的ID定位多個元素。你可以使用普通類與類選擇器一起定位它們。

相關問題