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]

Googleにはいくつかのオプションがありますが、削除するにはremoveChildしか表示されません。ただし、document.getElementById を使用して removeChild 関数を使用すると、文句はありません。js 変数 (var tmpl) を使用している唯一の理由は、将来 ajax 呼び出しとして変更できる javascript の一部として xml のスニペットを使用したかったため、HTML の一部になりたくないからです。Try1とTry2の両方の「価格」要素が入力されているのをfirebugで見ました

4

1 に答える 1

0

次の行を置き換えるだけです。

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

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

getElementByTagNametmpl ではなく bkTmpl のメソッドです。

ここに例があります

于 2012-07-21T13:12:34.847 に答える