我需要使用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();
}
答案 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');
可能会工作。