我已经创建了这个JSFiddle,它展示了jQuery find方法如何接受从>开始的选择器。如果它不理解选择器的开头,它也会将f字母涂成红色,就像从选择器的开头移除>并再次运行JSFiddle时一样。选择器开头的>意味着选择器的其余部分将直接在该<table>元素下进行测试,而不是在嵌套表中测试。
我读过jQuery法,它不能解释这种行为。
所以,我能依靠这种行为吗?它在互联网的某个地方被记录或解释了吗?
更新:我知道像"table > tbody“这样的选择器是规范的一部分,可以始终在jQuery中使用,但我的问题是从>开始的选择器。据我所知,这不是CSS的特性。我认为jQuery以某种方式解释了>,或者理解我想直接查看表元素,或者将在find方法中传递的选择器附加到获得table元素的选择器中。
更新2:,如您在JSFiddle中所看到的,有两个选择器。最终元素分两步计算,而不是一步计算,因此jQuery逐步计算最终元素,不将第二个选择器附加到第一个选择器,并将最终字符串选择器传递给document.querySelectorAll函数。我想确切地知道,我是否可以依赖jQuery的find方法对从>开始的选择器的识别。
发布于 2015-12-02 12:26:55
这叫做直接子女选择器,这是一个基本的CSS概念。你完全可以依靠它。
它不是以>开头的选择器。看之前。它被find()所使用。它与以前的父选择器组合在一起。因此,您的选择器将有效地:
"table:first > tbody > tr > td:last-child"上面的不是很好吗?
发布于 2015-12-02 12:28:10
jQuery选择器只接受标准的CSS。子选择器(>)是标准CSS选择器的一个示例,它是支持得很好。
更新:您的jQuery与:
$("table:first > tbody > tr > td:last-child").css("color", "red");这应该可以解释为什么它仍然是标准的CSS。
https://stackoverflow.com/questions/34042709
复制相似问题