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

因此,从 DOM 中删除此元素的最明显方法不起作用,因为 removeRange 未实现。我应该以另一种方式解决这个问题吗?

在不相关的说明中,为什么没有remove()指定方法List<E>?必须执行两个操作 ( indexOf(), removeRange()) 似乎很笨重。

4

1 回答 1

7

答案并不明显,但看似简单。Node 接口(Element 扩展)有一个remove()方法可以将它从 DOM 中删除。

_backdropDiv.remove();

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

于 2012-06-23T12:06:57.537 回答