Die*_*ego 5 indexing jquery css-selectors jquery-selectors
选择器如何和gt工作?它们的顺序是一样的吗?(如果它们都在同一个选择器中)
这个问题我需要两个答案.
1)以下行的结果不应该总是0 ??? 我问那些指数大于3且小于2的指数.索引可能是:ix> 3&ix <2同时!!
$("tr").find("td:gt(3):lt(2)").length
Run Code Online (Sandbox Code Playgroud)
2)事实证明,当我改变选择器gt的顺序时,它开始工作正常.以下行的结果为0.
$("tr").find("td:lt(2):gt(3)").length
Run Code Online (Sandbox Code Playgroud)
那些选择者的顺序不应该与结果不一致吗?
这就像选择器lt不会工作,如果它是在gt之后或类似的东西!
附加信息:
谢谢!
迭戈
问题是jQuery按顺序运行其选择器,而不是将它们编译成一个选择器.因此,:gt(3):lt(2)意味着"查找集合中索引超过3的所有元素,然后在返回的集合中查找索引小于2的所有元素".转动它会td:lt(2):gt(3)改变逻辑的顺序,因此会得到不同的结果.
在你的例子中:
<table>
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
:gt(3) 仅提供最终元素,因为它是索引大于3的唯一元素.因此,您有以下选择(来自Chrome控制台):
[<td>?4?</td>?]
Run Code Online (Sandbox Code Playgroud)
:lt(2)在那上面运行显然没有效果,因为集合中的一个元素的索引为0,低于2.
这样做:lt(2)对原设定提供了以下结果:
[<td>?0?</td>?, <td>?1?</td>?]
Run Code Online (Sandbox Code Playgroud)
:gt(3)在这上运行显然会删除集合中的所有元素,因为它们分别具有索引0和1,两者都不大于3.
| 归档时间: |
|
| 查看次数: |
4944 次 |
| 最近记录: |