domparser删除节点不工作

时间:2012-07-20 17:01:43

标签: javascript

以下是代码段:

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

我正在删除孩子的“价格”,如下所示。 Try1&amp; Try2无效

尝试1:

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

Try2

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

对于Try1,它会抛出error =&gt; “找不到节点”

对于Try2,它给出=&gt; 无法转换JavaS ... DOMElement.removeChild]

谷歌几个选项,但我只看到removeChild删除它。但是当我使用document.getElementById&amp;使用removeChild函数它不会抱怨。唯一的原因我使用js变量(var tmpl),因为我想使用xml的片段作为javascript的一部分,将来可以作为ajax调用&amp;因此不想成为HTML的一部分。我在firebug上看到了Try1和amp; Try2“price”元素正在填充

1 个答案:

答案 0 :(得分: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