1

我需要使用 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 事件并尝试使用父级(“.txt”)或兄弟级(“.txt”),但似乎不起作用......

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

3 回答 3

5

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

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

另一种方法是一直到.content(via .closest()) 以确保安全,然后向下遍历.find()

$(".uiButton").click(function(){ 
  var txt = $(this).closest(".content").find(".txt").text(); 
});
于 2010-12-20T21:07:22.300 回答
2

您需要向上到包装器并向下,您可以到兄弟姐妹,但在这种情况下会更难。

$(".uiButton").click(function(){ 
  var txt = $(this).closest('.content').find('.txt').text(); 
}
于 2010-12-20T20:59:55.863 回答
0
$(this).closest('p.txt');

可能会奏效。

于 2010-12-20T21:00:39.683 回答