Jquery prev() find() или closest()

Hous

Registered
Имам един списък , в които се опитвам да открия предишния <em> елемент.
И да взема стойността му.
Когато HTML кода е
Код:
<div class="nekafklas">
<em>test</em><a href="javascript:;">Vzemi texta</a>
<em>test2</em><a href="javascript:;">Vzemi texta</a>
<em>test3</em><a href="javascript:;">Vzemi texta</a>
</div>
С jquery
Код:
jQuery("div.nekafklas a").click(function(){
var texta= jQuery(this).prev('em').text();
alert(texta);
});
Така показва точно текстовете, но ако примерно имам някакъв друг таг между em и a таговете:
Код:
<em>test3</em><br><br><b></b><a href="javascript:;">Vzemi texta</a>
Тогава кода не работи, пробвах със find() и closest(), но целта ми е когато кликна на дадения линк, да намери най-близкия предишен клас на EM и да му вземе текста. Някакви идей?
 
Може да взимаш предишни тагове докато не попаднеш на em:
[js]
function get_prev_em ( el ) {
var obj = el.prey();
while ( obj.prop('tagName') != 'EM' )
obj = obj.prev();
return obj.html();
}
//и после...
$('a').click (function () {
var text = get_prev_em($(this));
});[/js]
 
joTunkiq каза:
[js]
jQuery("div.nekafklas a").click(function(){
var texta= jQuery(this).parent().find('em').html;
alert(texta);
});
[/js]

:idea:
Мерси за опита, но имаш грешка при html и второ така ще намери първия em елемент във родителя ... на мен ми трябва най-близкия предишен em таг

@anonimen
Така май стана.. ще тествам още малко
 
parents() също би могъл да ти свърши работа, като евентуално можеш да ограничиш родиетелския елемент с :first :idea:
 

Back
Горе