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

时间:2015-12-02 12:25:35

标签: javascript jquery selector

我创建了this JSFiddle,它显示了jQuery find方法如何接受以>开头的选择器。如果它不理解选择器的开头,它也会用f字母红色,就像从选择器的开头删除>并再次运行JSFiddle一样。选择器开头的>表示选择器的其余部分将直接在<table>元素下测试,而不是在嵌套表中测试。

我读过the documentation for the find jQuery method并没有解释这种行为。

那么,我可以依靠这种行为吗?是在互联网上的某处记录或解释过吗?

更新:我知道像“table&gt; tbody”这样的选择器是CSS规范的一部分,并且总是可以在jQuery中使用,但我的问题是选择器 >。根据我的知识,这不是CSS的一个特性。我认为jQuery以某种方式解释>并且要么理解我想直接查看table元素,要么将find方法传递的选择器追加到我获得{{1}的选择器} element。

更新2:正如您在JSFiddle中看到的,有两个选择器。最后一个元素分两步计算,而不是一步计算,因此jQuery逐步计算最终元素,它不会将第二个选择器附加到第一个选择器并将最终字符串选择器传递给table函数。我想知道我是否可以依赖jQuery的document.querySelectorAll方法,该方法是以find开头的未定选择器。

2 个答案:

答案 0 :(得分:2)

这就是direct child选择器,这是一个基本的CSS概念。你可以非常依赖它。

选择器不是以>开头的。见之前。它由find()使用。它与前一个父选择器结合使用。所以你的选择器将变得有效:

"table:first > tbody > tr > td:last-child"

不是上面的那个好吗?

答案 1 :(得分:2)

jQuery选择器只接受标准CSS。子选择器(>)是标准CSS选择器的示例,它是very well supported

更新:您的jQuery与以下内容没有什么不同:

$("table:first > tbody > tr > td:last-child").css("color", "red");

这可以解释为什么它仍然是标准的CSS。