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());
}
});
答案 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());
}
});
让我知道它是怎么回事