Javascript 关于在Div内选择输入的问题

Javascript 关于在Div内选择输入的问题,javascript,jquery,Javascript,Jquery,请您看一下下面的代码,并告诉我为什么无法使用this.ID获取所选收音机的ID <div id="pay" class="btn-group" data-toggle="buttons"> <label class="btn btn-primary"> <input type="radio" name="mode" id="option1"> Cash </label> <label class="btn

请您看一下下面的代码,并告诉我为什么无法使用
this.ID
获取所选收音机的ID

<div id="pay" class="btn-group" data-toggle="buttons">
    <label class="btn btn-primary">
      <input type="radio" name="mode" id="option1"> Cash
    </label>
    <label class="btn btn-primary">
      <input type="radio" name="mode" id="option2"> Cheque
    </label>
</div>

<script>
$("#pay input:radio").on('click',function(){
 alert(this.id);
});
</script>

现金
支票
$(“#支付输入:无线电”)。在('单击',函数()上{
警报(this.id);
});

谢谢

确保在DOM就绪后执行jQuery代码:

$(document).ready(function () {
    // All your function calls, self-invoked functions, etc
    // Also you define your event handlers here
});
从关于
.ready(处理程序)

指定在DOM完全关闭时要执行的函数 装载

然后,您需要将
this
转换为jQuery对象以访问其方法,例如
.attr()
如下:
$(this)

从jQuery 1.7版开始,您可以使用
.on()
函数来使用事件委派

再次强调:

将一个或多个事件的事件处理程序函数附加到 选定的元素


$(文档).ready(函数(){
$(文档)。在('单击','支付输入:无线电',函数()上){
//使用控制台进行调试,而不是使用alert()
window.console.log($(this.attr('id'));
});
});
尝试使用

$(this.attr(“id”)
而不是
this.id

这将起作用

$(function(){

     $(document).on('click', '#pay input:radio', function(){

      alert($(this).prop('id'))

   });


})

如果发布的代码实际上是jQuery的全部,那么您只是忘记了使用document ready处理程序:

$(document).ready(function(){
    // your code should be in here
});

或者,您可以确保将
放在关闭
标记之前,这两种方法都可以确保在尝试绑定事件处理程序之前加载页面内容并显示在页面中。

在这里起作用:控制台中有错误吗?您有错误吗?为什么您认为这会有所不同?为什么?您所做的唯一更改是使检索
id
的过程更昂贵,并且稍微(尽管稍微)慢一些。+1我同意cuz OP的代码可以在js完全加载时提醒id:
$(document).ready(function(){
    // your code should be in here
});