JQuery Selector - PullRequest
       22

JQuery Selector

2 голосов
/ 05 декабря 2008

Я хочу добиться перехода к родительскому элементу, а затем к элементу prev получить идентификатор атрибута элемента, который имеет class: classname.

<div>

<span><span id="190" class="classname">blabla</span></span>

<span><a href="#" class="button">blabla</a></span>

</div>

Псевдокод:

$('.button').click(function(){
 console.log($(this).parent().prev().$(".classname").attr("id"));
});

Должен ли я использовать находку здесь или есть другой способ?

Ответы [ 6 ]

4 голосов
/ 05 декабря 2008

Для вашего примера:

$(this).parent().prev().children( '.classname' ).attr( 'id' );
1 голос
/ 06 декабря 2008

Кстати, идентификатор "190" недействителен, атрибуты id и name должны начинаться с буквы, а не с цифры.

0 голосов
/ 23 февраля 2012

Может быть, вы могли бы использовать функцию контекста, например так:

$('.button').click(function(){
    console.log( $('.classname', $(this).parent() ).attr('id') );
});
0 голосов
/ 13 апреля 2011

Как сказал Иванфоссон, вы можете использовать его совет, только если знаете конечное число шагов или слоев вниз по DOM элементу, который вы ищете, но если <div>, который вы поместили, относительно некоторых других элементов div, и вы также можете используйте find, а затем

$(this).parent().prev().children( '.classname' ).attr( 'id' );
0 голосов
/ 06 декабря 2008

Найти кажется самым коротким способом добраться туда ...

alert($(this).parents("div").find(".classname").attr( 'id' ));

или

alert($(this).parents("div").find("span span").attr( 'id' ));
0 голосов
/ 05 декабря 2008

Я бы использовал find, как вы предложили.

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