我有这样的链接:
<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
谢谢!
答案 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');