0

下面是代码片段:

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

我正在删除孩子的“价格”,如下所示。Try1 和 Try2 都不起作用

尝试1:

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

尝试2

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

对于 Try1,它会抛出错误 =>“找不到节点”

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

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

4

1 回答 1

0

All you have to do is replace this line:

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

by

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

getElementByTagName is a method of bkTmpl and not tmpl.

Here is an example

于 2012-07-21T13:12:34.847 回答