使用jQuery获取兄弟元素的内容

时间:2010-12-20 20:57:35

标签: jquery dom-manipulation siblings

我需要使用jquery获取某些特定元素的内容,问题是我在页面上重复了相同的元素:

<div class="content">
   <img alt="" src="">
   <p class="txt">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
   <p class="info">Lorem ipsum dolor...</p>
   <ul>
     <li><a class="uiButton">Test</a></li>
   </ul>
 </div>

所以,div.content在我的页面上多次重复,我想只得到点击按钮的div的内容。我在.uiButton上添加了一个onclick事件,并试图使用parent(“。txt”)或兄弟(“.txt”),但似乎没有用......

$(".uiButton").click(function(){ 
  var txt = $(this).parent(".txt").text(); 
}

3 个答案:

答案 0 :(得分:5)

.txt不是父级,即使这样,它也必须是直接父级(.parent()匹配直接父级,如果它匹配选择器),而你需要:

$(".uiButton").click(function(){ 
  var txt = $(this).closest("ul").siblings(".txt").text(); 
});

另一种方法是一直到.content(通过.closest())以确保安全,然后使用.find()进行追踪:

$(".uiButton").click(function(){ 
  var txt = $(this).closest(".content").find(".txt").text(); 
});

答案 1 :(得分:2)

你需要去包装并向下,你可以去兄弟姐妹,但在这种情况下,它会更难。

$(".uiButton").click(function(){ 
  var txt = $(this).closest('.content').find('.txt').text(); 
}

答案 2 :(得分:0)

$(this).closest('p.txt');

可能会工作。