1

オプションノードを持つノードがある場合、JQuery を使用して XML を解析する際に問題が発生します

<preferences><dashboard>
<report id="si_pg_vw" order="0">
  <header>
    <data>
      <option type="reportname" value="Page View"/>
    </data>
  </header>
</report>

firebug の次のコードは子を返しません

$reportElement.find("data")[0]

ただし、オプションを他の値 (「option2」、「test」など) に変更すると、上記の行は正しい子を 1 つ返します。

私は何かが足りないのですか、それともバグがありますか?

ありがとう

ジョン

4

2 に答える 2

1

おそらくこれは、HTML オプション タグが select タグの子である必要があることに関係しています。

応答のコンテンツ タイプが「text/xml」であることを確認してください。これはおそらく jQuery に応答を html ではなく xml として解析するように指示し、オプション タグを適切に認識します。

于 2009-09-25T11:36:49.240 に答える
1
$reportElement.find("data")[0]

動作しないでしょう。試す

$reportElement.find("data:first")

また

$reportElement.find("data:eq(0)")

また、あなたの例では「ダッシュボード」と「設定」を閉じていません。

これは完全な例です。

var myXML = <preferences>
              <dashboard>
                 <report id="si_pg_vw" order="0">
                    <header>
                      <data>
                         <option type="reportname" value="Page View"/>
                      </data>
                    </header>
                </report>
             </dashboard>
           </preferences>

myXML = jQuery(myXML);
myXML.find('data option:first');
//OR
myXML.find('data option:eq(0)');
//OR
myXML.find('data option').each(function(){ window.console.log(this) });

于 2009-09-28T14:36:40.277 に答える