gpt4 book ai didi

javascript - 更改parentNode.innerHTML后,无法访问parentNode

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:02 24 4
gpt4 key购买 nike

假设我有以下 DOM 结构和脚本

var test = document.getElementById('test');
test.parentNode.innerHTML += 'hello';
console.log(test.parentNode); // null
console.log(document.getElementById('test').parentNode); // normal result
<div>
<div id="test"></div>
</div>

正如上面的脚本所说,第一个输出 null 而第二个输出实际节点,有谁知道为什么第一个输出 null 而不是正常节点?

最佳答案

重置 innerHTML 属性后,浏览器解析设置的内容并创建 元素。 test 变量不引用同样具有 test id 的新元素。原始 test 元素与 DOM 分离,没有父元素。 testdocument.getElementById('test') 引用不同的 DOM 元素对象。

改用createTextNodeappendChild 方法看看区别:

var test = document.getElementById('test');
test.parentNode.appendChild(document.createTextNode('hello'));
console.log(test.parentNode);

关于javascript - 更改parentNode.innerHTML后,无法访问parentNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38408577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com