0
我想动态地使用表列中的值购买一些复选框。当表创建它应该如何(我使用对我的服务器的get请求动态填充它)时,我无法从任何列中获取值,因此我可以使用它们。这里是我的代码:JQuery:无法从表列中获取元素
$(document).ready(function()
{
/*
$.get("sub3",function(responseJson)
{
if(responseJson!=null)
{
$("#table1").find("tr:gt(0)").remove();
var table1 = $("#table1");
$.each(responseJson, function(key,value) {
var rowNew = $("<tr><td></td><td></td><td></td><td></td></tr>");
rowNew.children().eq(0).text(value['idp']);
rowNew.children().eq(1).text(value['producator']);
rowNew.children().eq(2).text(value['culoare']);
rowNew.children().eq(3).text(value['pret']);
rowNew.appendTo(table1);
});
}
});
*/
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
if (xmlhttp.status == 200)
{
$("#table1").find("tr:gt(0)").remove();
var table1 = $("#table1");
var Data = JSON.parse(xmlhttp.responseText);
$.each(Data, function(key,value) {
var rowNew = $("<tr><td></td><td></td><td></td><td></td></tr>");
rowNew.children().eq(0).text(value['idp']);
rowNew.children().eq(1).text(value['producator']);
rowNew.children().eq(2).text(value['culoare']);
rowNew.children().eq(3).text(value['pret']);
rowNew.appendTo(table1);
});
}
else if (xmlhttp.status == 400) {
alert('There was an error 400');
}
else {
alert('something else other than 200 was returned');
}
}
};
xmlhttp.open("GET", "sub3", true);
xmlhttp.send();
createBox();
});
function createBox()
{
var items=[];
$('#table1 tr td:nth-child(2)').each(function()
{
items.push($(this).text());
});
var items = $.unique(items);
console.log(items);
for (var i = 0; i < items.length; i++)
{
addCheckbox(items[i]);
}
}
function addCheckbox(name)
{
var container = $('#cblist');
var inputs = container.find('input');
var id = inputs.length+1;
$('<input />', { type: 'checkbox', id: 'cb'+id, value: name
}).appendTo(container);
$('<label />', { 'for': 'cb'+id, text: name }).appendTo(container);
}
在功能createbox(),在执行console.log(项目)打印[],当它应该充满已添加到我的表中的值。我究竟做错了什么?
'createBox()是你的'onreadystatechange'回调之前执行'你xmlhttp.onreadystatechange功能您$。每次通话后开火。所以此时你的桌子是空的 –