0

次の構造のテーブルがあり、各行の最初の TD にチェックボックスが含まれています。チェックボックスをオンにする必要がある行の 2 番目の TD のコンマ区切りの値を含む非表示フィールドがあります (非表示フィールドに 2 番目の 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 ループを持つことです。その際、(コンマで区切られた非表示の値ではなく) 値を持つ配列が必要であり、2 番目の 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 に答える