【问题标题】:jquery selector drill-down?jquery选择器向下钻取?
【发布时间】:2012-03-14 19:47:59
【问题描述】:

如果我有

$('.rotator li').each(function() {
  $(this).further-nested-elements.somefunction();
});

如何引用嵌套在this 下方的元素,这样我就不必每次想要访问它时都重新输入原始选择器(即$('.rotator li'))?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    使用.find():

    $(this).find(".someClass");
    

    或者,使用this 作为context

    $(".someClass", this);
    

    我更喜欢第二种方法,因为至少在我看来,它似乎要做的工作更少——只需一个函数调用,只创建一个 jQuery 对象而不是两个。

    【讨论】:

    • 效果很好,一开始对我来说应该更明显。谢谢!
    • @gilly3,唉,$("selector", element) 在内部解析为 $(element).find("selector"),因此您的第二个代码 sn-p 不会更快(请参阅 current source code 中的第 189-193 行)。
    • @Frédéric - 啊,我害怕那个。所以,事实上,它有点慢,因为它意味着一个额外的函数调用并涉足所有这些if 语句,而$(this) 由第二个if 语句处理。但是,在我看来,这似乎更好……改变我的方式可能很难! ☺
    【解决方案2】:

    你可以使用:

     $(this).children("further_selector")
    

     $(this).find("further_selector")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      相关资源
      最近更新 更多