jquery获取动态生成的checkbox结点?
我从后台获得JSON类型的数据,放到动态生成的checkbox中,然后显示在页面指定的div中,部分代码如下:$.getJSON("../kyxm/getKyxmName...
我从后台获得JSON类型的数据,放到动态生成的checkbox中,然后显示在页面指定的div中,部分代码如下:
$.getJSON("../kyxm/getKyxmName_Kyxm.action",null,function(response){
var listHtml='';
//循环取json中的数据,并呈现在列表中
$.each(response,function(i){
listHtml += " <input type='checkbox'";
listHtml += " name=cr0"+i;
listHtml += " id=cr0"+i;
listHtml += " value="+response[i];
listHtml += " style=border:none;/>";
listHtml += "<label for=cr0"+i;
listHtml += ">"+response[i]+"</label><br/>";
});
$("#selectSub").html(listHtml).css("text-align","left");
}
);
<div id="selectSub"> </div>
但是好像在页面上获取不到生成的checkbox结点
比如:$("#selectSub :checkbox").click(function() {
alert(123);
}
);
当我选中动态生成的复选框时,没任何反应。怎样才能获得动态生成的checkbox的点击事件呢?期待解答哦~~~
放到后面试过了,也没起作用~~谢谢你的回答
我改成这样了 实现了我想要的功能,但是我还是不明白为什么jquery捕获不到json打印出来的东西的任何事件呢,是不是页面上没有就捕获不到哦。
这是我改了之后的:
$.getJSON("../kyxm/getKyxmName_Kyxm.action",null,function(response){
var listHtml='';
//循环取json中的数据,并呈现在列表中
$.each(response,function(i){
listHtml += " <input onclick='test()' type='checkbox'";
listHtml += " name=checkboxXmmc";
......
});
$("#selectSub").html(listHtml).css("text-align","left"); } );
再写了个这样的函数:
function test() {
var number = addEquipmentForm.checkboxXmmc.length;
var xmmcArray = document.addEquipmentForm["checkboxXmmc"];
for(i=0;i<number;i++) {
var test = xmmcArray[i].value;
if (eval("document.addEquipmentForm.checkboxXmmc[" + i + "].checked") == true) {
$("#equipmentXmmc").val(test);
$("#selectItem").hide();
}
}
} 展开
$.getJSON("../kyxm/getKyxmName_Kyxm.action",null,function(response){
var listHtml='';
//循环取json中的数据,并呈现在列表中
$.each(response,function(i){
listHtml += " <input type='checkbox'";
listHtml += " name=cr0"+i;
listHtml += " id=cr0"+i;
listHtml += " value="+response[i];
listHtml += " style=border:none;/>";
listHtml += "<label for=cr0"+i;
listHtml += ">"+response[i]+"</label><br/>";
});
$("#selectSub").html(listHtml).css("text-align","left");
}
);
<div id="selectSub"> </div>
但是好像在页面上获取不到生成的checkbox结点
比如:$("#selectSub :checkbox").click(function() {
alert(123);
}
);
当我选中动态生成的复选框时,没任何反应。怎样才能获得动态生成的checkbox的点击事件呢?期待解答哦~~~
放到后面试过了,也没起作用~~谢谢你的回答
我改成这样了 实现了我想要的功能,但是我还是不明白为什么jquery捕获不到json打印出来的东西的任何事件呢,是不是页面上没有就捕获不到哦。
这是我改了之后的:
$.getJSON("../kyxm/getKyxmName_Kyxm.action",null,function(response){
var listHtml='';
//循环取json中的数据,并呈现在列表中
$.each(response,function(i){
listHtml += " <input onclick='test()' type='checkbox'";
listHtml += " name=checkboxXmmc";
......
});
$("#selectSub").html(listHtml).css("text-align","left"); } );
再写了个这样的函数:
function test() {
var number = addEquipmentForm.checkboxXmmc.length;
var xmmcArray = document.addEquipmentForm["checkboxXmmc"];
for(i=0;i<number;i++) {
var test = xmmcArray[i].value;
if (eval("document.addEquipmentForm.checkboxXmmc[" + i + "].checked") == true) {
$("#equipmentXmmc").val(test);
$("#selectItem").hide();
}
}
} 展开
展开全部
我猜是你绑定事件的时间不对。
$.getJSON()是异步调用的方法,调用其返回的数据动态生成checkbox,应该确保页面绘制完这个checkbox之后,再给这个checkbox绑定事件。即在回调函数给它绑定事件。
在$("#selectSub").html(listHtml).css("text-align","left");
的下一行写这绑定语句:
$("#selectSub :checkbox").click(
function()
{
alert(123);
}
);
$.getJSON()是异步调用的方法,调用其返回的数据动态生成checkbox,应该确保页面绘制完这个checkbox之后,再给这个checkbox绑定事件。即在回调函数给它绑定事件。
在$("#selectSub").html(listHtml).css("text-align","left");
的下一行写这绑定语句:
$("#selectSub :checkbox").click(
function()
{
alert(123);
}
);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询