jQuery无法识别<a> tag</a>中的属性

时间:2012-02-13 23:10:44

标签: jquery

我有这样的链接:

<a class="image_button" data-problem_id="157"  style="display: inline;" href="#"><span>See Solutions Members Have Already Suggested</span></a>

然后我尝试得到这样的id:

var problem_id = $(this).attr("data-problem_id");

但最终未定义。知道为什么吗?在其他情况下,我做了似乎正是这样的事情,我能够得到problem_id

谢谢!

3 个答案:

答案 0 :(得分:2)

我相信你可以使用:

$(this).data("problem_id");

访问数据属性。

答案 1 :(得分:1)

我认为我发现了您的错误,但这超出了您的问题范围。关键是,this是一个div,而不是你的按钮。你如何改变这一点,你需要亲自看看。您可以重新分配点击(而不是$("#div_id").live('click', blabla);执行$("#button_id").live('click', blabla);,也可以对点击目标进行检查。

这看起来像是:

$('#div_id').live('click', function(evt) {
    var btn = $(evt.target).closest('a');
    var data_thingy = btn.data('data_thingy');
});

<强> [编辑]
你也可以这样做:$('#div_id a').live('click', blabla)this - 对象将成为实际按钮。

答案 2 :(得分:0)

我认为问题是$(this)不是您认为的超链接对象。你可以去Console.log看看对象到底是什么。您也尝试过使用:

var problem_id = $('.image_button').attr('data-problem_id');