根据第2和第3个TD值查找行

时间:2013-05-16 15:10:20

标签: asp.net jquery

我有一个以下结构表: -

 <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>

我有两个字符串ex a =“01”,b =“01-4444-44401”,现在我想找到第二个TD和第三个值与“a”和“b”匹配的每一行。然后,如果满足此条件,则选中每个所选行的第一个TD中的复选框。

如何使用jquery执行此操作? 我正在尝试使用“find”和“eq”,但是不知道如何实现它?

2 个答案:

答案 0 :(得分:1)

这将为您提供包含文本a的所有第二个单元格以及包含文本b的所有第三个单元格。不太相似,但差不多。

$('td:nth-child(2):contains('+a+'), td:nth-child(3):contains('+b+')')

Containsnth-child

如果您希望结果对象仅包含第二个单元格具有文本a且第三个单元格具有文本b的行,则必须执行此操作:

var rows = $('tr');
rows.filter(function(i){
    if($(this).find('td:nth-child(2):contains('+a+')') && $(this).find('td:nth-child(3):contains('+b+')')){
        //keep in object
        return true;
    } else {
        //remove from object
        return false;
    }
});

jQuery Filter

答案 1 :(得分:1)

你可以使用.filter - 给出你的上面的html:

var a = "01",
    b = "01-4444-44401",
    rows = $('tr').filter(function(index) { 
    var columns = $(this).children('td');
    return columns.eq(2).text() === a && columns.eq(1).text() === b; 
});

http://jsfiddle.net/j5C3B/2/