Получить содержимое элементов родного брата с помощью jQuery - PullRequest
1 голос
/ 20 декабря 2010

Мне нужно получить содержимое некоторых конкретных элементов с помощью 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, который удерживает кнопку нажатой.Я добавил событие onclick в .uiButton и попытался использовать parent (". Txt") или братьев и сестер (". Txt"), но, похоже, не работает ...

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

Ответы [ 3 ]

5 голосов
/ 21 декабря 2010

.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(); 
});
2 голосов
/ 20 декабря 2010

Вам нужно подняться до обертки и вниз, вы можете пойти к братьям и сестрам, но в этом случае это будет сложнее.

$(".uiButton").click(function(){ 
  var txt = $(this).closest('.content').find('.txt').text(); 
}
0 голосов
/ 21 декабря 2010
$(this).closest('p.txt');

Может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...