从JQuery XML对象返回的儿童遍历子对象
问题描述:
我想用JQuery和AJAX遍历返回的XML文件。而我正在最困难的时候弄清楚如何让孩子的孩子们返回数据。我所尝试的一切似乎都不起作用。到目前为止,我可以在DATASET中获得正确数量的孩子,但是当我得到第一个孩子的孩子时,它将返回7个孩子,应该有3个孩子。任何人都可以解决这个问题吗?从JQuery XML对象返回的儿童遍历子对象
这里的数据
<DATASET>
<ITEM>
<COLUMN1>A</COLUMN1>
<COLUMN2>B</COLUMN2>
<COLUMN3>C</COLUMN3>
</ITEM>
<ITEM>
<COLUMN1>D</COLUMN1>
<COLUMN2>E</COLUMN2>
<COLUMN3>F</COLUMN3>
</ITEM>
</DATASET>
这里的呼叫
function callAJAX(){
var request = $.ajax({
url: "testAjaxData.xml",
type: "POST",
data: {id : "paramValue"},
dataType: "xml"
});
request.done(function(xml) {
var myDoc = "";
var tree = xml.documentElement.childNodes;
var $kids = $(xml).find("DATASET").children()
alert($kids.size());
$kids.each(function(){
var tagName=this.tagName;
alert(tagName + " size: " + childNodes.length);
for (var i = 0; i < this.childNodes.length; i++) {
//alert(this.childNodes[i].value)
}
});
});
request.fail(function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
}
最后,我想它打印出来,如:
Row1: column1=[A] column2=[B] column3=[C]
Row2: column1=[D] column2=[E] column3=[F]
答
文本节点包括在childNodes
财产包括空白,所以儿童之间的空白也算数。
由于您使用jQuery的,你可以这样做:
...
$kids.each(function(){
var tagName=this.tagName;
var cols = $(this).children();
alert(tagName + " size: " + cols.length);
cols.each(function() {
//alert(this.value)
});
});
...
谢谢!我的问题是没有把$()围绕“this”,当我最初试图通过jquery获得孩子! – Taylor 2012-08-15 14:40:10