节点的获取

Node.nodeName

<div class="container">
  <ul class="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
  </ul>
  <!-- 我是注释 -->
  <p>123</p>
</div>
<script>
  const oContainer = document.getElementsByClassName('container')[0];
  console.log(
    oContainer.nodeName, // DIV
    oContainer.firstChild.nodeName, // #text (第一个是文本节点)
    oContainer.childNodes[3].nodeName, // #comment(第四个是注释节点)
    oContainer.lastElementChild.nodeName // P(最后一个元素节点是p标签)
  );
</script>

Node.nodeValue

<div class="container" id="app">
  <ul class="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
  </div>
  <!-- 我是注释 -->
  <p>123</p>
</ul>
<script>
  const oContainer = document.getElementsByClassName('container')[0]; // 元素节点

  const oBlankText = oContainer.firstChild; // 文本节点
  const oComment = oContainer.childNodes[3]; // 注释节点
  const oContainerIdAttr =
        oContainer.getAttributeNode('id'); // container的id属性节点
  const oUlClassAttr =
        document.getElementsByTagName('ul')[0].getAttributeNode('class');
  			// ul标签的class属性节点

  console.log(
    oContainer.nodeValue, // null
    oBlankText.nodeValue, // '\\n  '
    oComment.nodeValue, // ' 我是注释 '
    oContainerIdAttr.nodeValue, // 'app'
    oUlClassAttr.nodeValue // 'list'
  )

  oComment.nodeValue = '我是被修改后的注释';
  console.log(oComment.nodeValue); // comment 被修改成 我是被修改后的注释
</script>

Node.nodeType

Node.hasChildNodes

<div class="container" id="app" style="background-color: aqua;font-size: 18px;">
  <ul class="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
  </ul>
  <!-- 我是注释 -->
  <p>123</p>
</div>
<script>
  const oContainer = document.getElementsByClassName('container')[0]; // 元素节点
  console.log(oContainer.hasChildNodes()); // true
</script>

Element.attributes

<div class="container" id="app" style="background-color: aqua;"></div>
<script>
  const oContainer = document.getElementsByClassName('container')[0]; // 元素节点
  console.log(oContainer.attributes);
</script>

Untitled