繁体   English   中英

我可以依靠jQuery find方法接受以“>”开头的选择器的事实吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM