2012-02-08 116 views
0

嗨,大家好我想解析一个XML文档使用jQuery,但我一直打一个限制,所以我想。当一个节点有多个子节点时,我只能得到第一个节点。让我举个例子。阅读xml子节点上的多个XML属性jquery

<sheetData> 
    <row r="1" spans="1:2" x14ac:dyDescent="0.25"> 
    <c r="A1" t="s"> 
    <v>0</v> 
    </c> 
    <c r="B1" t="s"> 
    <v>1</v> 
</c> 

我使用下面的代码来尝试分析这些数据,但只得到了第一个属性我不知道我在做什么错。这里是代码。

 $(xml).find("row").each(function(i) { 
     v1 = $(this).find("c").attr("r"); 

我应该以A1和B1结束,但我只得到A1。任何想法建议我将永远是伟大的

回答

2

attr方法将只获得匹配的元素集的第一个元素的属性值。如果你想为所有的元素,然后使用each或其他一些循环,并从每个元素获取属性值。尝试这个。

$(xml).find("row").each(function(i) { 
     var attrs = []; 
     v1 = $(this).find("c").each(function(){ 
      attrs.push($(this).attr("r")); 
     }); 

     //Now attrs will contain both A1 and B1 attribute values. 
    }); 
+0

谢谢你,我的好人,这是天才,我很新的jQuery。感谢您指点我正确的方向! – user677275 2012-02-08 04:58:56

1

否,.attr()

描述:获取集合中匹配的元素的第一个元素的属性的值。

你匹配2 <c>但是然后.attr()返回它应该是什么。