如何使功能识别动态创建的元素的ID在jQuery的
问题描述:
$(document).ready(function() {
$('#somebutton').click(function() {
$.get('List', function(responseJson) {
$.each(responseJson, function(index, item) {
var elem=$('<input type="checkbox" id="item" value='+item+'/> ' + item + '<br />');
$('#somediv').append('<input type="checkbox" id="item" value='+item+'/> ' + item + '<br />');
});
$('#somediv').append('<button id="newButton">'+"retrieve"+'</button> <br />');
});
});
$("#newButton").click(function(){
var data = { 'checkBoxList[]' : []};
var list=$(":input:item:checked");
$(list.each(function() {
data['checkBoxList[]'].push($(this).val());
}));
$.get("Data",data,function(responseText){
$('#somediv').text(responseText);
});
});
});
(我是新来的jQuery) 我想要做的是 调用一个servlet,然后给我复选框如何使功能识别动态创建的元素的ID在jQuery的
的一些列表选择需要的,然后再次提交到另一个服务器 ,该服务器从复选框 中获取输入以显示基于选择的信息。
正从servlet的复选框的列表工作正常,当我点击该按钮,动态创建一个按钮也 ,它不会做任何事情,我唐诺为什么
答
一件事我可以用一个class
因为与您目前的实施,你可能会结束与多个按钮具有相同的ID。
所以你可以做的是:
$(".newButton").live('click', function(){
var data = { 'checkBoxList[]' : []};
var list=$(":input:item:checked");
$(list.each(function() {
data['checkBoxList[]'].push($(this).val());
})); //why is this like this *
$.get("Data",data,function(responseText){
$('#somediv').text(responseText);
});
});
而且我不知道你在做什么在这里:
$(list.each(function() {
data['checkBoxList[]'].push($(this).val());
})); //why is this like this *
只要做到:
list.each(function() {
data['checkBoxList[]'].push($(this).val());
});
+0
我试图获取由以前的函数创建的检查项目,然后发送列表到servlet进一步处理 – cypronmaya
+0
$(“。newButton”)不起作用,$(“#newButton”)工作 – cypronmaya
你叫什么题?你的代码有问题吗? – Polynomial
查看jQuery 1.7+或['.delgate()'](http://api.jquery.com/delegate/)的[.on()](http://api.jquery.com/on/)对于旧版本。这些将允许您绑定自动识别新元素的事件处理程序。所以当新的按钮被添加时,它的点击处理程序将起作用。 –