2012-02-08 26 views
0

こんにちは、私はjqueryを使用してXML文書を解析しようとしていますが、ノードに複数の子ノードがある場合は、最初のノードのみを取得します。私に例を挙げてみましょう。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

1

いいえ、.attr()

説明:マッチした要素の集合内の最初の要素の属性の値を取得します。

あなたは2 <c>と一致しますが、.attr()はそれが想定されているものを正確に返します。

関連する問題