获取与jQuery

问题描述:

兄弟姐妹元素我需要使用jQuery的一些特定元素的含量的内容,问题是,我有相同的元素重复我的网页上:获取与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的内容被点击。我添加了一个onclick事件上.uiButton并试图利用母公司(“TXT‘)或兄弟姐妹(’TXT”),但不似乎工作...

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

.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(); 
}); 
+0

感谢Nick!这真的很有帮助! – Luciano 2010-12-20 21:16:06

+0

我选择第二种方法的原因是'ul'未命名,我更愿意在结构变化的情况下选择命名组件。 +1 – Orbling 2010-12-20 21:17:02

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

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

谢谢!该解决方案为我工作。 – Luciano 2010-12-20 21:09:46

+0

@Luciano:很好。 – Orbling 2010-12-20 21:17:28

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

可能会奏效。