2
私はjQueryで自分のxmlを解析する必要のあるWebアプリケーションを開発しています。 IE7とMozillaで動作するようにWebアプリケーションを構築しています。私は自分のXMLに反復したいので、以下のコードを書きました。IE7 +とMozilla用のJqueryを使用したXML解析
<script type='text/javascript' src="jquery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" language="javascript">
var xml = '<root><cell id="1"> </cell><cell id="2"> </cell></root>';
//works in ie7
$(xml).filter("cell").each(function() {
alert('ie'+$(this).attr('id'));
});
//works in mozilla
$(xml).find('cell').each(function() {
alert('mozilla'+$(this).attr('id'));
});
</script>
しかし、私が見つけたのは、別のブラウザ用にXMLからフェッチするために、別のループ機構を記述する必要があるということです。私はJqueryを使用しているので、ブラウザの互換性があるはずです。
xmlからすべてのブラウザで動作するので、ブラウザのチェックコードを書く必要はありません。
$(XML)はHTML DOMではないので、私は実際にXML文書のIEは、このようなルートやセルなどのタグを認識し、それはないかもしれないと思う見つける()のようにIE上で失敗した理由を説明IEはそれらをタグとして見ることはできません。 – GillesC
@gillescしかし、なぜ '.filter()' **がIEで動作するのか説明していません。 –
IE7のように、ルートノードを取り除き、子要素( 'cell'ノード)だけを含むjQueryオブジェクトを返すようです。最初に '$ .parseXML(xml)'を呼び出し、その結果をjQueryオブジェクトに渡してみましょう: 'var xmlDoc = $ .parseXML(xml); $(xmlDoc).find( 'cell')。each(.. 。); '。 –