代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

获取对上一个范围对象选择器的引用

  •  0
  • leora Matt Lacey  · 技术社区  · 14 年前

    我有以下HTML:

    <span class="addEventHidden"><img src="/Content/Images/add.gif"></span>
     <br>
     <div class="event">My Event</div>
     <div  class="event">My Event 2</div>
     <div  class="event">My Event 3</div>
     <div  class="event">My Event 4</div>
    

    然后,当我单击任何“event”DIV时,我有以下事件处理程序:

    $('.event').live('click', function () {
    

    现在,我想从这个事件处理程序中获取对具有class=“addEventHidden”的对象的引用。我试过这个:

      var previousAddEvent = $(this).prev(".addEventHidden");
    

    但这似乎不起作用。有什么建议吗?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Nick Craver    14 年前

    使用 .prevAll() :first ,像这样:

    var previousAddEvent = $(this).prevAll(".addEventHidden:first");
    

    .prev("selector") 得到 立即 前兄弟 如果 它与选择器匹配,看起来不太像 直到 它找到一个匹配。 PREVALL() 将得到所有以前的兄弟姐妹,以预期的顺序(反向),所以我们只希望它遇到的第一个匹配我们的选择器。

        2
  •  0
  •   Elf Sternberg    14 年前

    我不太了解您的HTML,我假设您已经适当地将它和其他类似的对象进行了容器化。如果你有,一个答案是

    var previousAddEvent = $('.addEventHidden', $(this).parent());