【问题标题】:Find an element by class name, from a known parent element从已知的父元素中按类名查找元素
【发布时间】:2010-06-14 02:22:12
【问题描述】:

我想按类名查找元素。我知道它会出现在特定的父 div 中,所以我不想搜索整个 dom,我只想搜索特定的 div。我正在尝试这个,但似乎不是正确的语法:

var element = $("#parentDiv").(".myClassNameOfInterest");

这样做的正确方法是什么?

谢谢

【问题讨论】:

    标签: jquery


    【解决方案1】:

    你很亲密。你可以这样做:

    var element = $("#parentDiv").find(".myClassNameOfInterest");
    

    或者,您可以这样做:

    var element = $(".myClassNameOfInterest", "#parentDiv");
    

    ...将 jQuery 对象的上下文设置为#parentDiv

    编辑:

    此外,在某些浏览器中,如果您使用div.myClassNameOfInterest 而不是仅使用.myClassNameOfInterest,它可能会更快。

    【讨论】:

    • 第二种方法实际上是通过jQuery在后台转换为第一种方法的。第一种方法是得到认可的方法。你对 div 也是正确的 - 添加告诉 jQuery 只检查 div 的类名,而不是所有元素。
    • @Mike - 前几天我听说 jQuery 将第二个示例转换为第一个示例,所以我快速查看了源代码。当然似乎。感谢您的确认。 :o)
    【解决方案2】:
    var element = $("#parentDiv .myClassNameOfInterest")
    

    【讨论】:

    • 我认为这实际上可能更慢。我认为这不会将搜索的上下文减少到#parentDiv。我很确定它仍在为类搜索 DOM,然后当它找到一个时,它会检查它是否是 #parentDiv 的后代。
    • @patrick,你是对的。与您的示例一样,使用 id 选择器指定可选的上下文参数可提供最佳性能...$(".myClassNameOfInterest", "#parentDiv");
    猜你喜欢
    • 2014-02-15
    • 2021-03-05
    • 2023-01-03
    • 2012-01-24
    • 2016-04-25
    • 1970-01-01
    • 2018-07-09
    • 2014-05-29
    相关资源
    最近更新 更多