我有以下XML-
<;行>;
<;行id=“5”>;
<;电池>;项目1</电池>;
<;attrs>;
<;attr>;
<;id>;1</id>;
<;类型>;复选框</类型>;
<;价值观>;
<;价值>;
<;id>;10</id>;
</价值>;
<;价值>;
<;id>;11</id>;
</价值>;
</价值观>;
</attr>;
<;attr>;
<;id>;2</id>;
<;类型>;复选框</类型>;
<;价值观>;
<;价值>;
<;id>;20</id>;
</价值>;
<;价值>;
<;id>;21</id>;
</价值>;
</价值观>;
</attr>;
</attrs>;
</世界其他地区>;
</行>;
我想做的是循环某一行的每一行
我试图这样做是为了得到所有的attr id,但我也得到了id的值
函数填充形式(id){
var theRow=$(theXmlDoc.find('row[id='+id+']).get()
$(theRow).find(“attr”).each(函数(i)
{
警报($(this.find(“id”).text());
});
}
我还想指出,主要目标是循环每个attr,然后在我有attr的id时循环每个值
如果你想到一个更容易/更简单的方法来与其他图书馆合作,我愿意听取你的建议
提前感谢,
我不清楚你想循环什么,我想你问题中的一个标签是乱码。你说:“我想做的是循环某一行的每一行。”我想你在那里有一个标签
无论如何,这里有一些使用jQuery从解析的xml文档中提取数据的示例。注释显示了将发出的警报
我认为问题的一部分是您将id值作为属性的同级而不是子级。似乎更连贯的结构可能是:
<;行>;
<;行id=“5”>;
<;电池>;项目1</电池>;
<;attrs>;
<;attr id=“1”>;
<;类型>;复选框</类型>;
<;价值观>;
<;价值>;
<;id>;10</id>;
</价值>;
<;价值>;
<;id>;11</id>;
</价值>;
</价值观>;
</attr>;
<;attr id=“2”>;
<;类型>;复选框</类型>;
<;价值观>;
<;价值>;
<;id>;20</id>;
</价值>;
<;价值>;
<;id>;21</id>;
</价值>;
</价值观>;
</attr>;
</attrs>;
</世界其他地区>;
</行>;
但如果您无法控制xml,请忽略该建议。:-)
好的,下面是一些用于获取各种数据的遍历示例:
首先让我们看一下“项目1”
<;script type=“text/javascript”>;
//项目1
$.get('sample.xml',null,函数(数据,文本状态){
警报($(数据).find('rows-row[id=5]单元格').text());
}“xml”);
</脚本>;
现在我们将得到1和2:
<;script type=“text/javascript”>;
// 1
// 2
$.get('sample.xml',null,函数(数据,文本状态){
$(数据).find('rows row[id=5]attrs attr>;id')。每个(函数(){
警报($(this.text());//1,2
});
}“xml”);
</脚本>;
最后,让我们取出主属性ID并将它们绑定到值中:
<;script type=“text/javascript”>;
//行行[id=5]属性属性>;id 1的内部id为10,11
//行行[id=5]属性属性>;id 2的内部id为20,21
$.get('sample.xml',null,函数(数据,文本状态){
var out=''
$(数据).find('rows row[id=5]attrs attr>;id')。每个(函数(){
out+='rows row[id=5]attrs attr>;id'+$(this.text();
var innerIds=[];
$(this).同级('value').find('value id').each(函数(){
innerIds.push($(this.text())
});
out+='的内部ID为'+innerID.join(',)+'\n';
});
警惕(出去);
}“xml”);
</脚本>;