我很确定这可以在不进入函数的情况下完成,但我想抓住任何TR,其中有一个<td>Mail ...</td>或<td>Foo ... </td>作为示例.
我一直认为应该是这样的
$('tr[./text()^="foo"]')但铬不喜欢它.或者$('tr[./td/text()^="Mail"]')但是没有运气可以通过一个简单的选择器来完成?
Mas*_*low 23
我很惊讶没有人想出这个,也许我的问题太模糊了.
$('tr:has(td:contains("Leather"))').hide()
$('tr:has(td:contains("Mail"))').hide()
$('tr:has(td:contains("Cloth"))').hide()
$('tr:has(td:contains("Bow"))').hide()
$('tr:has(td:contains("Gun"))').hide()
Run Code Online (Sandbox Code Playgroud)
要使它成为用于搜索dk或pally的装甲和武器的书签
一种可能的方案:
$('td').filter(function() {
return $(this).text().indexOf('Foo') === 0;
}).closest('tr');
Run Code Online (Sandbox Code Playgroud)
您必须使用.filter()处理元素的文本(您不能使用选择器,至少不是您想要的方式)并且.closest()应该自我解释.
编辑:但这可以<tr>多次选择一个元素.我实际上不知道jQuery如何处理这个问题.另一个解决方案是使用两个嵌套的filters(on tr和on td但不知何故,这感觉效率低下).
Edit2:从版本1.4.4开始,jQuery似乎足够聪明,可以处理同一元素的多次出现(即它就像一个集合).DEMO在这里(如果您更改为版本1.4.2,您将看到第一行被选中两次).