美文网首页
元素的子节点

元素的子节点

作者: lx_smile | 来源:发表于2017-08-12 13:02 被阅读0次

我们先来比较两段代码:

  • 代码1
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<ul id = "list">
  <li>a</li>
  <li>b</li>
  <li>c</li>
</ul>
 <button onclick = "test()"> 点击</button>
<script>
  function test(){
  var newNode = document.createElement("li");
  var newText = document.createTextNode("e");
  newNode.appendChild(newText);
  
  var mylist = document.getElementById("list");
  mylist.insertBefore(newNode,mylist.childNodes[1]);
}
</script>
</body>
</html>
  • 代码1结果展示
点击按钮前 点击按钮之后
  • 代码2
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
 <ul id = "list"><li>a</li><li>b</li><li>c</li></ul>
 <button onclick = "test()"> 点击</button>
<script>
  function test(){
  var newNode = document.createElement("li");
  var newText = document.createTextNode("e");
  newNode.appendChild(newText);
  
  var mylist = document.getElementById("list");
  mylist.insertBefore(newNode,mylist.childNodes[1]);
  
}
</script>
</body>
</html>
  • 代码2 结果展示


    点击按钮前
点击按钮之后

造成这样差异的原因是:元素的 childNodes 属性包含它所有的子节点,这些子节点有可能是元素,文本节点,注释或者处理指令。不同的浏览器在看待这些节点方面存在显著的不同,如下代码:

<ul id = "list">
  <li>a</li>
  <li>b</li>
  <li>c</li>
</ul>

如果是 IE 来解析这些代码,那么<ul> 元素会有三个子节点,分别是 3个<li> 元素。但是如果在其他浏览器中,<ul> 元素都会有 7个元素,包括 3 个<li>元素和四个文本节点(表示<li>元素之间的空白符)。如果像下面样将元素间的空白符删掉,那么所有的浏览器都会返回相同数目的子节点。

<ul id = "list"><li>a</li><li>b</li><li>c</li></ul>

对于这段代码,<ul>元素在任意浏览器中都会包含3 个子节点。如果需要通过 childNodes 属性遍历子节点那么一定不要忘记浏览器的这一差别。

相关文章

  • jQuery 常用的节点操作

    js 获取元素(父节点,子节点,兄弟节点) jQuery 获取元素(父节点,子节点,兄弟节点) 元素筛选

  • 十月第二周学习笔记

    DOM 节点 元素子节点只检索第一层 子节点获元素的子节点数组oDiv.childNodes获元素的子元素节点数组...

  • 2018-09-27 Day28 - JS修改标签元素操作

    根据拿到元素访问其他节点元素访问子节点 - children元素访问父节点 - parentNode元素访问兄弟节...

  • JavaScript DOM常用笔记

    获取元素(父节点,子节点,兄弟节点)

  • 元素的子节点

    我们先来比较两段代码: 代码1 代码1结果展示 代码2 代码2 结果展示点击按钮前 造成这样差异的原因是:元素的 ...

  • Element和Node相关方法总结

    Element: 父子元素节点属性: childElementCount:返回子元素节点的个数 children:...

  • DOM笔记

    DOM笔记获取元素获取指定元素获取子元素&兄弟元素&父元素获取第一&最后一个子元素节点操作克隆节点 - clone...

  • javascript中children属性和childNodes

    childNodes: 标准属性,返回指定元素的子元素节点集合。包括元素节点(nodeType==1),属性节...

  • JavaScriptDOM

    节点层次 文档节点是每个文档的根节点。 元素,是document的子节点,诚挚为文档元素。文档元素是文档的最外层元...

  • jquery代码

    jQuery()调用('加标签')创建节点父元素.append(子元素)放在最后子元素.appendTo(父元素)...

网友评论

      本文标题:元素的子节点

      本文链接:https://www.haomeiwen.com/subject/olwdrxtx.html