Jan*_*ger 2 jquery jquery-selectors dom-traversal
我想知道,是否可以<tr>从满足多种条件的<table>地方选择<td>.例如(参见最后的样本表):
得到所有
<tr>的第一列是"奥迪" ,第二列是"红色"
我已经找到了如何过滤一个柱子:
$('tr:has(td:nth-child(1):contains("Audi"))').doSomeThing();
Run Code Online (Sandbox Code Playgroud)
但我的问题是如何过滤AND条件,如:
$('tr:has(td:nth-child(1):contains("Audi") && td:nth-child(2):contains("red"))').doSomeThing();
Run Code Online (Sandbox Code Playgroud)
我知道有多属性选择器,但因为我正在搜索.text()属性,所以它不适合我的问题.
我的样本表:
<table id="list">
<tr>
<td>Audi</td>
<td>red</td>
</tr>
<tr>
<td>Audi</td>
<td>yellow</td>
</tr>
<tr>
<td>Audi</td>
<td>green</td>
</tr>
<tr>
<td>BMW</td>
<td>red</td>
</tr>
<tr>
<td>BMW</td>
<td>yellow</td>
</tr>
<tr>
<td>BMW</td>
<td>green</td>
</tr>
...
</table>
Run Code Online (Sandbox Code Playgroud)
Thanx为您提供帮助!
使用此filter方法可根据其他条件缩小初始选择范围.
$('tr:has(td:nth-child(1):contains("Audi"))').filter(':has(td:nth-child(2):contains("red"))').doSomeThing();
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找单个选择器,那么可读性较差:
$('tr:has(td:nth-child(1):contains("Audi")):has(td:nth-child(2):contains("red"))').doSomeThing();
Run Code Online (Sandbox Code Playgroud)
这是一个演示:http://jsfiddle.net/8Mnsf/2/
您还可以通过以下方式提高可读性:
$('tr')
.has('td:nth-child(1):contains("Audi")')
.has('td:nth-child(2):contains("red")')
.doSomeThing();
Run Code Online (Sandbox Code Playgroud)