javascript - 为什么在这种情况下我无法访问 `element.firstChild`?

标签 javascript html dom

function setText() {
  // doesn't change... why not!?
  document.getElementById("demo").firstChild.innerHTML = 'changed!';
}

//calling the function with setTimeout to make sure the HTML is loaded
setTimeout(setText, 500);
<div id="demo">
  <p>first</p>
  <p>second</p>
</div>

我似乎无法改变<p>first</p><p>changed!</p> 。为什么不呢?

最佳答案

元素内的空格被视为文本,文本被视为节点。

如果将 HTML 更改为:

<div id="demo"><p>first</p><p>second</p></div>

它有效。尝试一下。

或者您可以使用node.firstElementChild来忽略前导文本,或者使用像jQuery这样的库来处理这个问题。

关于javascript - 为什么在这种情况下我无法访问 `element.firstChild`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48001089/

相关文章:

html - 如何在单个 csh/perl/python 脚本中将 20 个 .html 文件从 Linux 传输到 Windows?

javascript - HTML DOM 查找的时间复杂度是多少

php - 使用 PHP DOM 更改 CSS

html - 我在 CSS 中遇到过渡问题,它无法在菜单栏中顺利移动?

DOM 中的 Javascript 函数为 SVG 生成点击事件

javascript - 如何以 Angular 在第二个 View 中发送参数值?

javascript - 如何在 mouseenter 事件后定位特定元素?

javascript - 为什么没有调用第二个 javascript 函数?

javascript - HTML5 表单必填字段,带有普通按钮(不是提交)

c# - 如何使用 AngleSharp 查找和替换链接上的 href 值?