在Div中选择输入的问题

时间:2014-05-23 21:11:26

标签: 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 btn-primary">
      <input type="radio" name="mode" id="option2"> Cheque
    </label>
</div>

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

由于

4 个答案:

答案 0 :(得分:1)

如果发布的代码实际上是jQuery的 complete ,那么您只是忘记使用文档就绪处理程序:

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

或者您可以确保在结束<script>标记之前放置</body>,这两种方法都可以确保页面内容加载并显示在页面之前>您尝试绑定事件处理程序。

答案 1 :(得分:0)

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

$(document).ready(function () {
    // All your function calls, self-invoked functions, etc
    // Also you define your event handlers here
});

关于.ready( handler )的{​​{3}}:

  

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

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

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

再次docs

  

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

<script>
    $(document).ready(function () {
        $(document).on('click', '#pay input:radio', function() {
            // Instead of using alert(), use the console for debugging
            window.console.log($(this).attr('id')); 
        });
    });
</script>

答案 2 :(得分:0)

尝试使用

$(this).attr("id")代替this.id

答案 3 :(得分:0)

这将有效;

$(function(){

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

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

   });


})