1

div要素を作成してbody要素に追加し、後で要素を削除しようとしています。この省略されたコードは、私がやろうとしていることを示しています。

//create div
_backdropDiv = new DivElement();

//add div to body, this works as expected
window.document.query('body').elements.add(_backdropDiv);

//in some other method...
var body = window.document.query('body');

//it's odd the List<E> doesn't specify a remove method, we'll jump through some hoops...
var backdropIndex = body.elements.indexOf(_modalDiv);
body.elements.removeRange(backdropIndex, 1); //<--- NotImplementedException

したがって、removeRangeが実装されていないため、DOMからこの要素を削除する最も明白な方法は機能しません。私はこれを別の方法で行うべきですか?

無関係なことに、なぜremove()メソッドが指定されていないのList<E>ですか?2つの操作(indexOf()removeRange())を実行する必要があるのは不格好なようです。

4

1 に答える 1

7

答えは明白ではありませんが、一見単純です。(Elementが拡張する)Nodeインターフェースには、remove()それをDOMから削除するメソッドがあります。

_backdropDiv.remove();

参照:http ://api.dartlang.org/html/Node.html#remove

于 2012-06-23T12:06:57.537 に答える