使用jQuery获取同级元素的内容

使用jQuery获取同级元素的内容,jquery,dom-manipulation,siblings,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> &

我需要使用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>

你需要上到包装器下,你可以去兄弟姐妹,但在这种情况下,这将更加困难

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

你需要上到包装器下,你可以去兄弟姐妹,但在这种情况下,这将更加困难

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

可能会起作用。

.txt不是父项,即使是这样,如果它与选择器匹配,它也必须是直接父项与直接父项匹配,而您需要:

$(".uiButton").click(function(){ 
  var txt = $(this).closest("ul").siblings(".txt").text(); 
});
另一种方法是,为了安全起见,通过一直上到.content,然后通过以下方式向下移动:

.txt不是父级,即使如此,它也必须是直接父级,如果它与选择器匹配,则必须与直接父级匹配,而您需要:

$(".uiButton").click(function(){ 
  var txt = $(this).closest("ul").siblings(".txt").text(); 
});
另一种方法是,为了安全起见,通过一直上到.content,然后通过以下方式向下移动:


我之所以选择你的第二种方法,是因为ul未命名,我更喜欢选择命名组件,以防结构发生变化+1我选择第二种方法的原因是ul未命名,我更喜欢选择命名组件以防结构变化+1.
$(".uiButton").click(function(){ 
  var txt = $(this).closest(".content").find(".txt").text(); 
});