Селектор jQuery

Я хочу добиться перехода к родительскому элементу, а затем к элементу 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.info($(this).parent().prev().$(".classname").attr("id"));
});

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

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
2
0
765
6

Ответы 6

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

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

$(this).parent().prev().children( '.classname' ).attr( 'id' );

Найти кажется кратчайшим путем ...

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

или же

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

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

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

$(this).parent().prev().children( '.classname' ).attr( 'id' );

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

$('.button').click(function(){
    console.info( $('.classname', $(this).parent() ).attr('id') );
});

Другие вопросы по теме