我有一个包含名称和计数数据的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")"));
作为测试,但不断获取空值。
此外,一旦检索到数据,我将如何删除所有重复项并且jus会留下一条记录?非常感谢您的帮助。
答案 0 :(得分: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 :(得分:0)
1)您在选择器的内部和外部使用双引号。考虑一下:':contains("1")'
2)您需要逐个指定选择器不含空格
'.count:contains("1")'