Javascript jQuery的数据显示问题
我从ajax调用中获得的XML数据生成表。通话正常,我得到了正确的数据。但是,当我创建表时,第一个表中的数据被添加到第二个表中,然后两个表都被添加到第三个表中,依此类推 代码如下:Javascript jQuery的数据显示问题,javascript,jquery,Javascript,Jquery,我从ajax调用中获得的XML数据生成表。通话正常,我得到了正确的数据。但是,当我创建表时,第一个表中的数据被添加到第二个表中,然后两个表都被添加到第三个表中,依此类推 代码如下: function loadAcct(acctid,acctName){ //removes the current li elements from our list before making new ones. $("#title-name").app
function loadAcct(acctid,acctName){
//removes the current li elements from our list before making new ones.
$("#title-name").append(" - "+acctName);
//ajax call to the server to get the needed information.
$.ajax({
url: "/_admin_/"+ acctid + "-grps.xml",
contentType: "xml",
type: "GET",
async: false,
success: function(xml){
//loop to find the name of the <SavedCart> elements
$("#demo").append('<div id="tabs"><ul></ul></div>');
$(xml).find('SavedCart').each(function(){
$(this).find("Name").each(function(){
groupName = $(this).text();
groupNameUp = groupName.toUpperCase(groupName);
// We only want to output the groups that have CRIB in the name
if(groupNameUp.indexOf("CRIB") != -1){
$("ul").append("<li><a href=\"#tabs-" + p + "\">" + groupName + "<\/a><\/li>");
$(this).parent().find('ItemList').each(function(){
$(this).find('Item').each(function(){
partNums.push( $('PartNumber',this).text())
descs.push( $('Description',this).text())
//cpns.push( $('CustomerPartNumber',this).text())
})
})
for(c=0;c<partNums.length;c++){
for(d=0;d<pn.length;d++){
if(partNums[c] == pn[d]){
cpns1[c] = cpns[d];
mins1[c] = mins[d];
maxs1[c] = maxs[d];
boxqtys1[c] = boxqtys[d];
break;
}else{
cpns1[c] = "";
mins1[c] = "";
maxs1[c] = "";
boxqtys1[c] = "";
}
}
}
if (partNums.length > 0){
var table = '<div id="tabs-' + p + '" class = remove><form id="orderform' + p + '" name="orderform' + p + '" action="order.php" method="POST" enctype="multipart/form-data" onSubmit="return checkpo(' + acctid + ', ' + p + ')"><table border="1" cellpadding="10" name="mytable' + p + '" id="mytable' + p + '" class="sortable"><thead><tr><th>On Hand<\/th><th>Eclipse ID<\/th><th>Customer Part Number<\/th><th>Description<\/th><th>Minimum<\/th><th>Maximum<\/th><\/th><th>Box Qty<\/th><th>Amount to Order<\/th><th>Select For Order<\/th><\/tr><\/thead><tbody id="maintablebody" >';
for(l=0;l<partNums.length;l++){
table += '<tr><td><input type="text" id="onhand' + l + '" class="onhand' + l + '" size="5" onchange="autocheckbox(' + l + ')"></td><td>' + partNums[l] + '<\/td><td>' + cpns1[l] + '<\/td><td>' + descs[l] + '<\/td><td class="min' + l + '">' + mins1[l] + '<\/td><td class="max' + l + '">' + maxs1[l] + '<\/td><td class="bxqty' + l + '">' + boxqtys1[l] + '<\/td><td class="tdamt'+ l +'"><input type="text" name="amt[]" id="amt[]" class="amt' + l +'" size="6" onchange="chkfrmamt(' + l + ')" /><\/td><td style="text-align: center;"><input type="checkbox" name="check[]" id="check[]" value="' + partNums[l] + '" class="check' + l +'" onClick="autofill(' + l + ')" /><\/td><\/tr>';
}
table += '<tr><td colspan="8"><label>PO Number:<\/label><input type="text" id="PO" name="PO" class="PO' + p + '" width="20" \/><\/td><\/tr><\/tbody><\/table><div id="submit"><input type="submit" id="sub" value="Order" /><input type="reset" value="Reset" name="reset" /></div><input type="hidden" id="SessID" value="' + sessID + '" name="SessID" \/><input type="hidden" id="eID" value="' + acctid + '" name="eID" \/><\/form><\/div>';
$("#tabs").append(table);
p++;
m = p;
}
}
})
//clearArr();
})
}
})
for(q=0;q<=m;q++){
$("table#mytable" + q + " tr:odd").addClass("alt");
}
$( "#tabs" ).tabs();
}
不看XML,我想您可能需要为每个新的
SavedCart
元素重置partNums
和descs
?如果您发布一些xml文件,可能会更清楚您做错了什么
试试这个
$(xml).find('SavedCart').each(function(){
partNums = [];
descs = [];
我已经用cleararr()试过了;函数,但它似乎没有帮助。你能在该函数中发布代码吗?你能告诉我如果你把你的代码改成我上面的代码会发生什么吗?好的,看来我已经修好了。我取出了cleararr()函数,将整个表的创建移到find(“itemList”)。each(循环)。非常感谢您的帮助。
function clearArr(){
mins.length = 0;
maxs.length = 0;
namearr.length = 0;
acctidarr.length = 0;
partNums.length = 0;
descs.length = 0;
cpns.length = 0;
cpns.length = 0;
data.length = 0;
mins1.length = 0;
maxs1.length = 0;
cpns1.length = 0;
pns.length = 0;
pn.length = 0;
boxqtys.length = 0;
boxqtys1.length = 0;
p = 1;
}
$(xml).find('SavedCart').each(function(){
partNums = [];
descs = [];