高级选取: 第一个子节点, 最后一个子节点, 上一个兄弟节点, 下一个兄弟节点(包含空白和不包含空白等分成8个属性)

    // var ul = document.body.children[0];

    // console.log(ul);

    firstChild: 第一个子节点(包含空白)

    // console.log(ul.firstChild); //换行空白 #text

    firstElementChild: 第一个子节点(不包含空白)

    // console.log(ul.firstElementChild); //

  • 1111111
  • lastChild: 最后一个子节点(包含空白)

    // console.log(ul.lastChild); //换行空白 #text

    lastElementChild: 最后一个子节点(不包含空白)

    // console.log(ul.lastElementChild); //

  • 4444444
  • previousSibling: 上一个兄弟节点(包含空白)

    // console.log(ul.firstElementChild); //

  • 1111111
  • // console.log(ul.firstElementChild.previousSibling); //空白节点,换行 #text

    previousElementSibling: 上一个兄弟节点(不包含空白)

    // console.log(ul.firstElementChild.previousElementSibling); //null

    nextSibling: 下一个兄弟节点(包含空白)

    // console.log(ul.firstElementChild.nextSibling); //空白节点,换行 #text

    nextElementSibling: 下一个兄弟节点(不包含空白)

    // console.log(ul.firstElementChild.nextElementSibling); //

  • 22222222