2011-09-15 13 views
3

jQuery Ajaxを使用してサーバーからXML文書を取得し、HTMLに変換してブラウザDOMに挿入します。 dataType: 'xml'を使用して取得しているので、HTMLではなくXMLドキュメントとしてラップされます。これにより、挿入する前にやりたい操作を行うことができます。ブラウザにXML要素を挿入する方法DOM

しかし、私はDOMに操作XMLを挿入する方法を見つけることができません。

$('#myContainer').append(myXML[0].xml) 

ながら

$('#myContainer').append(myXML) 

は、IEのセキュリティ違反が発生し、Firefoxでは効果がありません(XMLプロパティは標準ではないように見えます)

myXML.text()はマークアップではなくXMLからテキストノードを返しますが、myXML.html()はnullを戻します。

私はテキストとして取得しようとしましたが、これはちょうどいいことを挿入する "標準" jQueryオブジェクトを作成することができます。しかし、私は上に行くものの次の並べ替えがあります

<div><input type='checkbox'><otherElement/></input></div> 

をしてotherElementの内容に基づいてinput要素を変更したいです。私はテキストとして、元のXMLを回復した場合otherElementの親要素が信頼できない入力要素の操作を作り、divないinputであるように、jQueryのは

<div><input type='checkbox'><otherElement/></div> 

にそれを軽減します。私はhtmlとしてそれを取得する場合も同じことが起こります。

ご迷惑をおかけして申し訳ございません。

答えて

0

私は、htmlとしてそれをretriveそれを操作して、DOMに添付します:

<script type="text/javascript"> 
$.ajax({"url":"/ajax.whatever", 
     "dataType":"html", 
     "success":function(data) { 
      var html = $(data); 
      // modify html as a jquery object 
      // ... 
      $("#myContainer").append(html); 
     } 
} ); 
</script> 
+0

ありがとうございました。残念なことに、htmlとして取得することは、テキストとして取得することと同じ問題を抱えています。ドキュメントのコンテンツは、入力要素の子要素が効果的に再親子化されるように変更されます。 –

2

ソリューションは「dataTypeと」を使用して、それをロードすることである:「テキスト」をしてから作成するために$ parseXMLを使用jQueryオブジェクトこれにより、マークアップが保持され、結果オブジェクトのノードをDOMに挿入できます。

関連する問題