0

我有一个具有以下结构的表,其中每行的第一个 TD 包含一个复选框。我有一个隐藏字段,其中包含必须选中复选框的行的第二个 TD 的逗号分隔值(如果隐藏字段包含第二个 TD 的值,标记第一个复选框已选中)。就像我有包含值“00-0227101-,01-123456789-”的隐藏字段。现在基于此,我必须标记复选框已选中。这样做的有效方法是什么?我有数千行。我的方法是溢出隐藏字段,然后在每个 TD 中找到该值,然后选中复选框。

<tr class="tbs_tr" style="background-color: #ffffff;" jQuery1368711830388="355">
    <TD style="WIDTH: 20px" class=tbs_td><INPUT class=search value=0 type=checkbox name=search jQuery1368711830388="356"></TD>
    <TD class=tbs_td>00-0227101-</TD>
    <TD class=tbs_td>1</TD>
    <TD class=tbs_td>&nbsp;</TD>
    <TD class=tbs_td>Medak</TD>
    <TD class=tbs_td>02/27/2013</TD>
    <TD style="BORDER-RIGHT: medium none" class=tbs_td>02/01/2013</TD>
    </tr>



    <tr class="tbs_tr" style="background-color: #ffffff;" jQuery1368711830388="355">
    <TD style="WIDTH: 20px" class=tbs_td><INPUT class=search value=1 type=checkbox name=search jQuery1368711830388="358"></TD>
    <TD class=tbs_td>01-123456789-</TD>
    <TD class=tbs_td>1</TD>
    <TD class=tbs_td>2010 Acura CSX 4D Sed</TD>
    <TD class=tbs_td>Insured Ln, Insured Firstname</TD>
    <TD class=tbs_td>03/05/2013</TD>
    <TD style="BORDER-RIGHT: medium none" class=tbs_td>03/05/2013</TD>
    </tr>


<tr class="tbs_tr" style="background-color: #ffffff;" jQuery1368711830388="355">
<TD style="WIDTH: 20px" class=tbs_td><INPUT class=search value=2 type=checkbox name=search jQuery1368711830388="360"></TD>
<TD class=tbs_td>01-4444-44401</TD>
<TD class=tbs_td>01</TD>
<TD class=tbs_td>2001 Toyota Tundra 2 Door Pickup 128" WB 8 Foot Bed</TD>
<TD class=tbs_td>Naveen</TD>
<TD class=tbs_td>02/11/2013</TD>
<TD style="BORDER-RIGHT: medium none" class=tbs_td>02/10/2013</TD>
</tr>
4

1 回答 1

1

一种方法是有一个用于创建 td 元素的 for 循环,当你这样做时,你应该有一个包含值的数组(而不是逗号分隔的隐藏值),并检查去往第二个 td 的值是否在你有的数组。如果是,则将复选框设置为 true。

另一种方法是使用 jquery:

//get the value of the hidden field.
var hidden =  $('input[name=zyx]').val();
//split the string to get an array
var array = hidden.split(',');
//For each tr get the second td's value and see if it's in an array.
$("table tbody tr").each(function() {
    var value = $(this).children('td').slice(0, 2).text();
   if ($.inArray(value, array) > -1)//if it is, check the box in the previous td
   {
     $(this).children('td').slice(0,1).find('input:checkbox').attr("checked",true);
   }
});

虽然上面的代码未经测试并且可能不会立即工作,但我相信它会让你走上正轨。

于 2013-05-16T14:33:30.317 回答