所以我发现这种技术是所有浏览器中全局.remove()方法的变通方法。
a.outerHTML =''; delete a
a =你的元素。
我的问题..这对我来说非常混乱,因为它只有在我使用outerHTML =''时才有效。但是,删除操作符在这里说https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete它只用于从对象中删除属性?所以,(这可能是一个愚蠢的问题),但是当设置a.outerHTML时会将其转换为可删除的对象吗?怎么样?
编辑:我几乎觉得我应该删除这个问题,因为它可能听起来很愚蠢,但我显然丢了:P
答案 0 :(得分:1)
delete
运算符用于删除对象的属性。
var obj = {x: true};
console.log(obj) // {x: true}
delete obj.x;
console.log(obj); // {}
我强烈推荐这个参考:Understanding delete
在你的例子中:
a.outerHTML ='';
delete a;
delete
运算符与a.outerHTML = '';
的效果无关outerHTML
代码行自身用一些新的HTML替换部分DOM。删除delete a
,第一行代码仍会对您看到的DOM产生影响。
实际上,在ES5严格模式下:
delete a;
将抛出一个SyntaxError。这就是行为的无意识。