试图获取父元素的href属性值

时间:2014-09-09 14:41:05

标签: jquery html

我有这个HTML:

<a class="unfollow_url" href="http://localhost/snapll_back/account/unfollow.php?id=2">
    <div class="unfollow_button_flwrs">unfollow</div>
</a>

当用户点击&#34; .unfollow_button_flwrs&#34; &#39; href&#39;的价值其父元素的属性(&#34; .unfollow_url&#34;)应存储在变量中并发出警告(用于测试目的)。

这是我的JQuery&#34;:

$(".unfollow_button_flwrs").click(function() {
    var follower_user_id = $(this).parent().attr('href');
    alert(follower_user_id);
    return false;
});

然而,当我点击按钮时,它只是将我重定向到页面,即使我返回false并且当我添加e.preventDefault()时它也会重定向我。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您需要确保在DOM准备就绪时附加事件:

$(function(){
 $(".unfollow_button_flwrs").click(function() {
 var follower_user_id = $(this).parent().attr('href');
 alert(follower_user_id);
 return false;
});})

注意:如果动态添加元素,则需要使用事件委派将事件附加到此元素。

更新:使用事件委派:

$("body").on('click','.unfollow_button_flwrs',function() {
 var follower_user_id = $(this).parent().attr('href');
 alert(follower_user_id);
 return false;
});

答案 1 :(得分:0)

我认为因为您要将e.preventDefault();添加到div.unfollow_button_flwrs类而不是a.unfollow_url类。尝试:

$(".unfollow_button_flwrs").parent().click(function(e) {
    e.preventDefault();
    var follower_user_id = $(this).attr('href');
    alert(follower_user_id);
    return false;
});