【问题标题】:traversing dom in jquery?在jquery中遍历dom?
【发布时间】:2009-08-19 05:39:13
【问题描述】:

我有类似下面的代码:

<div class="class1">
    <a class="link1" src="...">...</a>
</div>
<div class="class2">
    <a class="link2" src="...">...</a>
</div>

假设我当前处于链接2 类的点击事件中,如何获取链接1 超链接的src 值?这些是动态生成的,因此可能有许多此代码的实例,因此我需要从 $this 遍历 dom 以到达 link1。谢谢。

【问题讨论】:

    标签: javascript jquery dom


    【解决方案1】:
    $('a.link2').click(function() {
        console.log($(this).parent().prev('div.class1').children('a.link1'));
    });
    

    【讨论】:

      【解决方案2】:

      一个灵活的解决方案可能是,如果您向调用 class1 和 class2 的 div 添加一个通用标识符,您可以找到您父母的前一个兄弟姐妹。例如,除了 HTML,您可以:

      <div class="class1 someClass">
          <a class="link1 someLink" src="...">...</a>
      </div>
      <div class="class2 someClass">
          <a class="link2 someLink" src="...">...</a>
      </div>
      

      然后,在所有链接上的 onclick 函数中,例如,

      $('a.someLink').click(function() {
          var $someContainer = $(this).parents('someClass:first');
          var $prevContainer = $someContainer.prev();
          // now you can work with $prevContainer  ...
      });
      

      您当然首先要检查“prev”兄弟是否真的存在。您可以适应查找下一个等。

      祝你好运!
      -f!

      【讨论】:

      • 我想也许你的意思是问如何获得href,而不是src?在这种情况下,你会问 $prevContainer.find('a').attr('href')
      猜你喜欢
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      相关资源
      最近更新 更多