查找按类过滤的元素的上一个匹配项

时间:2014-09-02 13:26:30

标签: javascript jquery

我有一个php循环,以这种形式打印了很多html:

<div class="something">
  ...
  <img class="prod-img" src="What-I-Need"/>
</div>
<div class="buttons" data-description="Some text here...">
  <a class="activator">Click me!</a>
</div> 

这段代码重复多次。 Usig jQuery我设法通过以下方式使用父选择器获取描述内容:

$('.activator').click(function() {
  alert($(this).parents('.buttons').data('description'));
})

由于$(this)有一个我需要的字段的父节点,那js代码工作得很好,我现在想知道,如何检索类prod-img的src内容?因为在父母之外......

1 个答案:

答案 0 :(得分:0)

如果他们像这样分组

<div class="container">
    <div class="something">
      ...
      <img class="prod-img" src="What-I-Need"/>
    </div>
    <div class="buttons" data-description="Some text here...">
      <a class="activator">Click me!</a>
    </div> 
</div>
<div class="container">
    .....etc....

您可以使用.closest().find()

获取prod-img
var src = $(this).closest('.container').find('.prod-img').attr('src');

否则,您需要使用.parent() .prev().find(),这是非常静态的,这使得在不更改代码的情况下更改HTML标记变得更加困难。

var src = $(this).parent().prev().find('.prod-img').attr('src');