使用Javascript解析XML并创建数组
我正在浏览一堆XML,试图在javascript中构建一个数组 XML: 问题的结果是 解析TRD3066 tot=TRD3066,1,15,23.1,1 解析DIC72000280 tot=DIC72000280,1,15278.26,1,DIC72000280,1,15278.26,1 解析KRE22208 tot=KRE22208,1,15,4.65,1,KRE22208,1,15,4.65,1,KRE22208,1,15,4.65,1使用Javascript解析XML并创建数组,javascript,jquery,xml,Javascript,Jquery,Xml,我正在浏览一堆XML,试图在javascript中构建一个数组 XML: 问题的结果是 解析TRD3066 tot=TRD3066,1,15,23.1,1 解析DIC72000280 tot=DIC72000280,1,15278.26,1,DIC72000280,1,15278.26,1 解析KRE22208 tot=KRE22208,1,15,4.65,1,KRE22208,1,15,4.65,1,KRE22208,1,15,4.65,1 这是其中的一个晚上,我只是不明白为什么end tot
这是其中的一个晚上,我只是不明白为什么end tot数组不是所有的单个项目???我认为是
造成了问题。每个函数都应该用简单的for
循环替换它
var items = jQuery(details).find("item");
for (var i = 0; i < items.length; i++) {
var ret = [];
ret[0] = jQuery(items[i]).find('prodcode').text();
console.log("parse " + ret[0]);
ret[1] = jQuery(items[i]).find('qty').text();
ret[2] = jQuery(items[i]).find('tax').text();
ret[3] = jQuery(items[i]).find('uprice').text();
ret[4] = jQuery(items[i]).find('price').text();
tot.push(ret);
console.log("tot=" + tot);
}
var items=jQuery(详细信息).find(“item”);
对于(变量i=0;i
我认为是引起了问题。每个函数都应该用简单的for
循环替换它
var items = jQuery(details).find("item");
for (var i = 0; i < items.length; i++) {
var ret = [];
ret[0] = jQuery(items[i]).find('prodcode').text();
console.log("parse " + ret[0]);
ret[1] = jQuery(items[i]).find('qty').text();
ret[2] = jQuery(items[i]).find('tax').text();
ret[3] = jQuery(items[i]).find('uprice').text();
ret[4] = jQuery(items[i]).find('price').text();
tot.push(ret);
console.log("tot=" + tot);
}
var items=jQuery(详细信息).find(“item”);
对于(变量i=0;i
您多次将对同一ret数组的引用推送到tot,然后更改引用的ret数组
还要注意的是,tot.push(ret)不会将每个项目从ret推送到tot上,而是将对ret的引用推送到tot上。当您在下一轮中更改ret的内容时,tot中的每个项目看起来都在更改,因为它们都是对同一数组的引用
也许不是你想要的tot.push(ret)吧
tot.push(ret[0], ret[1], ret[2], ret[3], ret[4]);
或者根本不制作ret数组,而是在获得单个文本时将其推送。您将对同一ret数组的引用多次推送到tot,然后更改引用的ret数组
还要注意的是,tot.push(ret)不会将每个项目从ret推送到tot上,而是将对ret的引用推送到tot上。当您在下一轮中更改ret的内容时,tot中的每个项目看起来都在更改,因为它们都是对同一数组的引用
也许不是你想要的tot.push(ret)吧
tot.push(ret[0], ret[1], ret[2], ret[3], ret[4]);
<> P>或者不做RET数组,而是在你得到它们的时候推一推单独的文本。在for循环的中间缺少i。但还是一样的结果!还有其他想法吗?对不起,漏了几行。请再检查一下,就是这样。var-ret=[];下次清除ret数组,并使用项目索引。谢谢你,艾普!错过了我在for for循环…但还是一样的结果!还有其他想法吗?对不起,漏了几行。请再检查一下,就是这样。var-ret=[];下次清除ret数组,并使用项目索引。谢谢你,艾普!