jQuery .attr('id')返回空

时间:2011-06-03 20:56:23

标签: jquery attr

这是我的代码

    $('.sort').click(function(){
        console.log($(this).attr('id'));
        $.cookie('sortby', $(this).attr('id'), { expires: 25 });
        //window.location.reload(true);
    });

HTML

<button id="name" class="sort">Name</button> 
<button id="price" class="sort">Price</button> 
<button id="popular" class="sort">Popularity</button>

我的cookie结束为空,控制台显示为

popular
(an empty string)

它似乎正在获取正确的ID,但后来将其更改为null 有什么建议吗?

3 个答案:

答案 0 :(得分:3)

在第二次调用中,$(this)对象改变了范围。以下应该有效:

    $('.sort').click(function(){
        console.log($(this).attr('id'));
        var $this = $(this);
        $.cookie('sortby', $this.attr('id'), { expires: 25 });
        //window.location.reload(true);
    });

答案 1 :(得分:0)

我认为这是因为当您提到“此”时,您的内部Cookie会改为

$('.sort').click(function(){
    var id = $(this).attr('id')
    $.cookie('sortby', id, { expires: 25 });
});

答案 2 :(得分:0)

不确定代码出错的地方,因为can not reproduce问题。

我会确保$.cookie库正在加载,并确保在这方面做得很好。