![](/img/trans.png)
[英]How can I find a specific subnode in XML with jQuery selectors/filters?
[英]Can I rely on the fact that the jQuery find method accepts selectors starting with “> ”?
我创建了这个JSFiddle ,它显示jQuery find
方法如何接受以>
开头的选择器。 如果它不了解选择器的开头,则它将f
字母涂成红色,就像从选择器的开头删除>
并再次运行JSFiddle一样。 选择器开头的>
表示选择器的其余部分将直接在该<table>
元素下进行测试,而不是在嵌套表中进行测试。
我阅读了有关find
jQuery方法的文档,但未解释此行为。
那么,我可以依靠这种行为吗? 它是在Internet上的某个地方记录或解释的吗?
更新:我知道选择器(例如“ table> tbody”)是CSS规范的一部分,可以始终在jQuery中使用,但是我的问题是有关以 >
开头的选择器。 据我所知,这不是CSS的功能。 我认为jQuery会以某种方式解释>
,或者理解我想直接在table元素下查找,还是将在find
方法中传递的选择器附加到通过其获取table
元素的选择器中。
更新2:在JSFiddle中可以看到,有两个选择器。 final元素是分两步计算的,而不是一个步骤,因此jQuery逐步计算final元素,它不会将第二个选择器附加到第一个选择器,也不将最终的字符串选择器传递给document.querySelectorAll
函数。 我想知道,如果我可以依靠jQuery的find
开始有选择的方法的undestanding >
。
这就是所谓的直接子选择器,这是一个基本的CSS概念。 您可以非常依靠它。
不是以>
开头的选择器 。 见前。 它由find()
。 它与先前的父选择器结合在一起。 因此,您的选择器将变得有效:
"table:first > tbody > tr > td:last-child"
以上不是很好吗?
jQuery选择器仅接受标准CSS。 子选择器( >
)是标准CSS选择器的示例,并且受到很好的支持 。
更新:您的jQuery与:
$("table:first > tbody > tr > td:last-child").css("color", "red");
这应该可以解释为什么它仍然是标准CSS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.