首页 > 解决方案 > 为什么我的 nodeValue 属性不起作用?

问题描述

我希望控制台在星期一显示。我尝试使用 innerText 和 outerText 属性,但也没有成功。

const el = document.querySelector("ul");
var child = el.firstChild.nodeValue;
console.log(child)
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Practise App</title>
    <link rel="stylesheet" href="index.css">
  </head>
  <body>
  <ul class="green">
    <li>Monday</li>
    <li>Tuesday</li>
  </ul>
    <script src="index.js" type="text/javascript"></script>
  </body>
</html>

标签: javascriptdom

解决方案


el.firstChild是打开后的换行符<ul>(检查它的.nodeType哪个是3for #TextNode

const el = document.querySelector("ul");
console.log(el.firstChild.nodeType)
<ul class="green">
  <li>Monday</li>
  <li>Tuesday</li>
</ul>

使用.firstElementChild而不是获取第一个在这种情况下Element是第一个<li>

const el = document.querySelector("ul");
const li = el.firstElementChild;
console.log(li.textContent)
<ul class="green">
  <li>Monday</li>
  <li>Tuesday</li>
</ul>


推荐阅读