2010-11-22 4 views
0

jQueryを使用してXML要素をメモリ内のXML文書に追加しています。XML文書にjQuery.appendToを使用するときにデフォルトの名前空間を削除する方法

var newElem = xmlDoc.find("newElem"); 
if (newElem.length == 0) 
    newElem = $("<newElem/>").appendTo(xmlDoc); 

私は何で終わることは次のとおりです。

<newElem xmlns="http://www.w3.org/1999/xhtml"></newElem> 

このXMLは、AJAX呼び出しでサーバーまで送信され、dom4jの中で、デフォルトの名前空間を使用すると、痛みです。既定の名前空間の追加を停止する方法はありますか?

私は途中でFirefoxを使用しています。これはブラウザ固有のものでしょうか?

答えて

0

jQueryは、createElementNSではなく、createElementを単に使用するため、jQueryがサポートするのは面倒なことでしょう。正味の効果は、常にドキュメント(HTML)名前空間を使用することです。

おそらくdocument.createElementNSを直接使用します。

+0

createElementを使って分かります。キーは、jQueryの内部作成ルーチンではなく、それを使用することです。 –

+0

これは、どのドキュメントを呼び出すかとは関係ありません。 jQueryは常に 'window.document'でそれを呼び出しますが、おそらく自分の文書でそれをやっているでしょう。それが働いていると聞いてよかった! –

0

ルート、つまりxmlnsから新しいxml doocを作成する、$("<newElem/>")構文を使用することはできません。私はそれでだながら、あなたはありませんjQueryの-XMLノードに追加している場合、

var el = xmlDoc.createElement(childname); // Create non-jq element 
el = $(el);        // jQuery-ize it 
el.appendTo(xmlDoc);      // Append using jq object 

そして:

あなたは非jQueryのプレーンのJavaScriptのcreateElement()メソッドを使用する必要がありますドキュメント、使用

var el = parent.context.createElement(childname); 
関連する問題