Jquery如何选择动态创建的单选按钮

时间:2014-11-30 11:47:22

标签: javascript jquery html5

Jquery如何选择动态创建的单选按钮。我有

<div id="rDataR">
</div>

我的JAVASCRIPT

 <script>
    $(function () {
    var items="<p>";

    for (var i = 0; i < length; i++) {

      items+="<input type='radio' id='myrdb' value='"+i+"'/>"

    }
    items+="</p>"
    $("#rDataR").html(items);

    }
    </script>

我试试这个,但没有工作

$('#myrdb').click(function () {
            if ($(this).is(':checked')) {
                alert($(this).val());
            }
        });

4 个答案:

答案 0 :(得分:1)

尝试如下:

$(document).on('click','#myrdb',function () {
        if ($(this).is(':checked')) {
            alert($(this).val());
        }
    });

答案 1 :(得分:0)

而不是使用重复的id使用类来进行用户输入 然后访问它们:

$(function(){
 $('.myrdb').filter(':checked').click(function(){alert('I am checked')})
});

答案 2 :(得分:0)

您需要将动态添加的html更改为

items+="<input type='radio' class='myrdb' value='"+i+"'/>"

因为根据惯例,dom id's必须是唯一的。

jQuery事件处理程序如下:

$(document).on('click','.myrdb',function () {
  if ($(this).is(':checked')) {
     alert($(this).val());
  }
});

答案 3 :(得分:0)

你的逻辑是正确的。你刚刚在这里和那里错过了一些终端冒号并且有一个小的流浪错误,你还没有定义你的长度。 我还将您的无线电元素更改为使用class而不是id,以便可以一致地唯一标识它们。 现在的变化如下:

您的HTML:
<div id="rDataR"></div>

您的JavaScript
<script> $(function() { var items = "<p>"; var length = 10; //added length for (var i = 0; i < length; i++) { items += "<input type='radio' class='myrdb' value='" + i + "'/>"; } items += "</p>"; $("#rDataR").html(items); //corrected the typo #rDataE }); </script>

您的触发器
$(".myrdb").click(function () { if ($(this).is(':checked')) { alert($(this).val()); } });

让我知道它是怎么回事