1

我是 Javascript 的新手,似乎我在这里遗漏了一些简单的东西。我只想返回我正在单击的按钮的 ID,但我却得到“未定义”。

HTML

<div class="btn-group" id="{{user.get('name')}}">
    <button class="btn" id="voteup">^^</button>
    <h4>{{user.get('vote')}}</h4>
    <button class="btn" id="votedown">vv</button>    
</div>

JAVASCRIPT

$(document).ready(".btn").click(function() {
    var id = this.id;
    alert(id);
)};
4

6 回答 6

6

试试这个

$(document).ready(function() {
    $(".btn").click(function() {
        alert($(this).attr("id"));
    });

});
于 2013-03-27T17:03:49.883 回答
4

你把事情搞混了。$(document).ready()接受 DOM 树完全加载时执行的处理函数。正确的解决方案是:

$(document).ready(function() {
    $(".btn").click(function() {
        var id = this.id;
        alert(id);
    });
});
于 2013-03-27T17:03:27.307 回答
0

如果您使用的是 jQuery,您可以id像这样读取属性:

$(this).attr('id');
于 2013-03-27T17:03:38.043 回答
0

绑定点击监听器的正确方法是

$(function(){
    $(document).on("click",".btn",function(e){
          alert($(this).prop("id"));
    });
});
于 2013-03-27T17:04:28.387 回答
0

我认为您应该尝试这种方式:

jQuery(document).ready(function(){
  jQuery('.btn').live('click', function(){
    var id = jQuery(this).attr('id');
    alert(id);
  });
});

试试看,告诉我们是否有效(:

于 2013-03-27T17:05:49.350 回答
0

当然,您的 javascript 中有错误:

$(document).ready(".btn").click(function() { //<----here in doc ready handler
   var id = this.id;
   alert(id);
)}; //<---------------closing of the handler

这应该改为:

$(document).ready(function(){
   $(".btn").click(function() {
      var id = this.id;
      alert(id);
   });
});
于 2013-03-27T17:12:25.470 回答