jquery.each函数检查另一个选择器并删除重复项

jquery .each function to check another selector and delete duplicates

本文关键字:删除 选择器 each 函数 检查 另一个 jquery      更新时间:2023-09-26

我有一个jquery数据表,其中包含名称和计数数据。

                <tr>
                    <th>Name</th>
                    <th class="count">Count</th>
                </tr>
              </thead>
            <tbody>
        </HeaderTemplate>
        <ItemTemplate>
            <tr>               
              <td class= "name"><%# Eval("Name") %></td>
              <td class= "count"><%# Eval("count") %></td>             
            </tr>

我面临的问题是尝试基于2选择器检索符合特定标准的数据。例如,我该如何编写一个jquery函数来检索"john"且计数为4的名称?我能够检索所有名字都是john的位置,如下所示:

 $('td').each(function () {        
         var aPos = oTable.fnGetPosition(this);
         var aData = oTable.fnGetData(aPos[0]);
         var retrievedEntry = aData[aPos[1]];
         if (retrievedEntry == "john") {
             alert($(this).html() + "found at position " + aPos);
         }
 });

我尝试了alert($(this).find(".count").filter(":contains("1")"));作为测试,但一直得到空值。

此外,一旦检索到数据,我将如何删除所有重复项并只留下一条记录?非常感谢你的帮助。

您可以获得包含"john"的单元格,然后将结果过滤为只包含下一个元素中包含"4"的单元格:

$('td.name:contains(john)').filter(function(){ return $(this).next().text() == '4'; })

注意::contains选择器进行部分匹配,因此它也会匹配,例如"johnny"。如果这是一个问题,你也可以在过滤器中检查:

$('td.name').filter(function(){ return $(this).text() == 'john' && $(this).next().text() == '4'; })

1(在选择器内外使用双引号。考虑:':contains("1")'

2( 您需要逐个指定选择器不带空格

'.count:contains("1")'