2012-07-20 56 views
0

下面的代碼片段:的DOMParser刪除節點不工作

var tmpl = "<book><auth> </auth> <price> </price> </book>"; 
var bkTmpl = parser.parseFromString(tmpl,'text/xml'); 
var bk = bkTmpl.cloneNode(); 

,我取出孩子「價格」,如下。無論Try1 & Try2不工作

Try1:

var bkprice = tmpl.getElementsByTagName('price')[0]; 
bkTmpl .documentElement.removeChild(bkprice); 

Try2

var bkprice = tmpl.getElementsByTagName('price'); 
bkTmpl.documentElement.removeChild(bkprice); 

對於Try1它拋出錯誤=> 「節點未找到」

對於Try2它給=> 無法轉換JavaS ... DOMElement.removeChild]

Google很少的選擇,但我只看到removeChild刪除它。但是,當我使用document.getElementById &使用removeChild函數它不抱怨。只有原因我正在使用js變量(var tmpl),因爲我想使用xml片段作爲javascript的一部分,將來可以更改爲ajax調用&因此不希望成爲HTML的一部分。我看到螢火蟲兩個Try1 & Try2「價格」元素填充

+0

什麼是你的'tw'變量? – mabbas 2012-07-20 17:31:06

+0

糾正了錯字,它是tmpl不tw ...我現在可以解決使用jquery $(bkprice).remove()&不知道它是如何做到現在,但將挖掘它..但是我想做的沒有jQuery的,因爲它是XML如果可以用普通的舊方法它會很好 – user593029 2012-07-20 19:37:30

回答

0

所有你需要做的就是替換這一行:

var bkprice = tmpl.getElementsByTagName('price')[0]; 
bkTmpl .documentElement.removeChild(bkprice); 

通過

var bkprice = bkTmpl.getElementsByTagName('price')[0]; 
bkTmpl .documentElement.removeChild(bkprice); 

getElementByTagName是bkTmpl的方法而不是tmpl。

這是一個example