2013-10-26 2 views

ответ

0
$(".d").click(function(){ 
    $(this).parent().prev('div'); // or $(this).closest('.b'); 
}); 

Обновлено после комментария OP в

fiddle DEMO

$(".d").click(function(){ 
    $(this).parent().parent().children().first(); 
}); 

Ссылка

.closest()

.parent()

.prev()

+0

почему проголосовали? –

+0

Downvote for read this «Я хочу сделать это относительно, не используя имя класса .b». вы используете класс 'b' –

+0

@NikolaMitev см. мой ответ, см. мой ответ, нет '.b'. Я дал опцию 'ближайший()' –

0

Вы должны найти parent предыдущая sibling

$(".d").click(function(){ 
    $(this).parent().prev(); 
}) 

, если вы хотите, чтобы установить третий брат, прежде чем текущий родительский просто добавить три раза Prev() отл.

$(".d").click(function(){ 
     $(this).parent().prev().prev().prev(); 
}) 
+0

Как это работает, если у меня было больше одного div в родительском? См. Обновление – alias51

+0

@ alias51 см. Обновленный ответ –

0

Это зависит от того, будут ли их относительные позиции всегда оставаться неизменными.

Если б всегда будут предыдущими родственными двойки родителя, вы можете выбрать его следующим образом:

$('.d').on('click', function(){ 
    var b = $(this).parent().prev(); 
}); 

Если б всегда будут первым ребенок d'родителя в родителях:

$('.d').on('click', function(){ 
    var b = $(this).parent().parent().find(">:first-child"); 
}); 
1

стандартный подход:

$('.module').on('click', '.button', function() { 
    $('.other', this)... 
}); 

Где:

  • .module является внешним наиболее элементом (обертки) компоненты страницы,
  • .button является элементом внутри компонента, нажмите действия, которые вы слушаете,
  • .other это элемент вы выбираете в обработчике кликов.

Обратите внимание, как: используется делегация

  • событие,
  • запрос внутри обработчика локальна, ограничена компонента страницы.

Кроме того, обратите внимание, как другие ответы закодировав отношения элемент в JQuery (те parent() и sibling() звонки), которая не хороший подход.

+0

как это будет работать, если у меня будет повторяться этот код? – alias51

+0

@ alias51 Мой код предназначен для повторного использования. Что ты конкретно имеешь ввиду? –

+0

Я использую шаблон выше нескольких раз на той же странице, поэтому его нужно выбрать, иначе будут затронуты все классы, а не только те, которые находятся в непосредственном родителе. – alias51

0
$(.d).click(function(){ 

$(this).parent().siblings('.b') //in this way 
}) 

Есть много способов для этого для них вы можете обратиться на сайт Jquery http://api.jquery.com/category/selectors/

+0

Как это работает, если у меня было больше одного div в родительском? См. Обновление – alias51

+0

@ alias51 Я отредактировал ответ, согласно вашему требованию – UDB

0
$(".d").click(function(){ 
    alert($('div[class="a"]').children(":first").text()); 
}); 

это будет выбрать элемент с классом б.

Live Demo

Это также будет работать

$(".d").click(function(){ 
    alert($(this).parent().parent().children(":first").text()); 
}); 

Live Demo 2

Даже этот

$(".d").click(function(){ 
    alert($(this).parent().prev('div').text()); 
}); 

Live Demo 3

Смежные вопросы