2012-02-20 4 views
1

Мне нужно получить родительский div гиперссылки. В приведенном ниже примере это будет '.link-container'. Однако this.parent или this.parents не работает.Получить родительский DIV из HREF в jQuery

jQuery('.link-container a').live('click', function(e) { 
e.preventDefault(); 
alert(this.parent); 
}); 

Любые идеи о том, как это получить ?.

С уважением, Джон

ответ

3

Ваше используя это неправильно. Вам нужно обернуть this в объект jQ. И родитель является функция, так что вы должны назвать его как parent():

$('.link-container a').on('click', function(e) { 
    e.preventDefault(); 
    alert($(this).parent()); 
}); 
+0

Thx для ответа. Я немного изменил ваш код, чтобы получить класс: 'alert ($ (this) .parent(). Attr ('class'));'. Это сработало для меня. – John

+0

О, да, lol 'alert ($ (this) .parent())' будет предупреждать объект. – elclanrs

0

.live устарела, используйте .on, если вы используете JQuery версии 1.7+ или же использовать .delegate, завернуть this в jquery, а затем использовать метод jquery parent или parents

jQuery(document).delegate('.link-container a','click', function(e) { 
e.preventDefault(); 
alert($(this).parents('.link-container')); 
}); 

если якорь тег внутри .lin-container как

<div class='link-container'> 
<a href='#'>stack overflow</a> 
</div> 

вы можете использовать closest

jQuery(document).delegate('.link-container a','click', function(e) { 
    e.preventDefault(); 
    alert($(this).closest('.link-container')); 
    }); 
+0

Thx для хэдз-ап на '.live'. Однако '.on' никогда не работал для меня. Я начну с другой должности. Для этого у меня есть привязанный тег внутри div и нужно получить класс для него. Итак, я пошел с слегка модифицированным кодом elclanrs – John

0

Джона, использовать или необработанный яваскрипт свойства this.parentNode или метод JQuery $(this).parent() который возвращает объект JQuery, содержащий набор только один узла (родительский узел .)

0

Надеется, что это помогает

Допустят, есть родительский DIV

<div id="parent"> 
    <a href="javascript:void(0)" class="link">Click me</a> 
</div> 

$(document).ready(function(){ 
    $(".link").click(function(){ 
    alert(this.parentNode.id); 
    }); 
}); 

Я обычно предпочитаю parentNode над родителем

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