在xml子节点jquery上读取多个xml属性

时间:2012-02-08 04:38:41

标签: javascript jquery xml

大家好我正在尝试使用jquery解析一个xml文档,但我仍然会遇到限制,或者我认为。当节点具有多个子节点时,我只获得第一个节点。让我举个例子。

  <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 个答案:

答案 0 :(得分: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.
  });

答案 1 :(得分:1)

不,.attr()

说明:获取匹配元素集中第一个元素的属性值。

你匹配2 <c>但是.attr()会准确地返回它应该是什么。