关闭,这个问题的标题不是很好。如果你有一个更好的建议,我会很乐意改变它。我也明白这个问题之前可能已经得到了回答,但我缺乏搜索它的词汇。
好的,我有这个文件:
<p id="test-paragraph">
There never was a <a href="">fatter</a> dog.
</p>
然后我有这个javascript:
<script>
var firstParagraph = document.getElementById('test-paragraph')
var test = firstParagraph.firstChild;
console.log(test);
firstParagraph.innerHTML = '';
console.log(test);
</script>
好的,在IE 11上,结果如下:
// "There never was a"
// EmptyTextNode
但Chrome / Edge / Firefox的结果是:
// "There never was a"
// "There never was a"
所以,我得到了正在发生的事情。 IE 11正在向第一个元素发出指针(?)。当该元素的父项被清空时,firstChild
被删除,因此指针将转到空节点。
但是,所有现代浏览器显然都会创建独立于父元素的节点的副本。
所以,问题:
1)我怎样才能更好地说出IE 11正在做什么?
2)我怎样才能更好地说出其他浏览器在做什么?
3)如何让IE 11像其他浏览器一样运行并复制节点的内容,而不是指向它们?(?)?
4)IE 11的方法对我来说更有意义(即使它很刺激)。为什么现代浏览器采用不同的方式呢?