以下是代码段:
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”元素正在填充 p>
答案 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