【问题标题】:Difference between $("#id .class") and $(".class" , $("#id")) [duplicate]$("#id .class") 和 $(".class" , $("#id")) 之间的区别 [重复]
【发布时间】:2011-06-09 16:54:43
【问题描述】:

可能重复:
What is the fastest method for selecting descendant elements in jQuery?

我认为两者的选择完全相同。 在速度或可用性方面有什么好处吗?

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:

    我应该先搜索得更好。我在下面的链接中找到了一个很好的答案:

    What is the fastest method for selecting descendant elements in jQuery?

    【讨论】:

    • 所以如果你说这是重复的,那么你应该删除这个问题。
    【解决方案2】:

    其实,我相信他们会给你两种不同的结果。

    第一个将获取所有 id 为“id”并且有一个名为“class”的类的元素;这应该只返回一个元素,因为 id 对于整个文档来说是唯一的。

    第二个将返回所有具有“class”类的元素,并且还将包含 id 为“id”的元素。

    【讨论】:

    • '#id.class 将返回那些 id 为“id AND class of "class”的元素,但 '#id .class" 将返回类 "class" 的元素,其祖先为 "id"
    【解决方案3】:

    它们以几乎相同的方式进行评估。 jQuery 从右到左搜索元素,然后沿着 DOM 树向上走,看它们是否与左下一个选择器匹配。所以这将以相同的方式进行评估。

    【讨论】:

      【解决方案4】:

      据我所知,它们在功能上应该是等效的,但是第一个 (#id .class) 应该更快,因为它只是对 jQuery 的一次调用而不是两次调用,而要完成的工作量应该是其他情况相同。

      【讨论】:

        猜你喜欢
        • 2016-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-28
        • 1970-01-01
        • 2010-10-07
        • 2016-07-01
        相关资源
        最近更新 更多