分享

JavaScript

 天使之翼 ` 2019-07-01

JavaScript不仅可以用来改变网页的结构和内容,还可以通过创建新元素和修改现有元素来改变网页结构。

在学习利用DOM方法在web浏览器中添加标记时,常常能想到document.write()和element.innerHTML方法,但是,不推荐使用这两种方法。

这两种方法都右一种共同的弊端:结构、样式、行为没有分离。

例如:

  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  5. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script type="text/javascript">
  10. document.write("<p>hello world</p>")
  11. </script>
  12. </body>
  13. </html>

即使把document.write()语句挪到外部函数中,也还是要在<body>中放入<script>标签才能调用这个函数。

像上面这种把JavaScript和HTML代码融合到一起的是一种很不好的做法,这样的代码即不容易阅读和编辑,也无法把样式,结构分离。

结构(html)、样式(css)、行为(js)永远是最佳的原则,只要存在可能,就要最大限度的使用CSS外部文件,用JavaScript外部文件去控制网页的行为。

.innerHTML属性是HTML专有的属性,不能用于其他标记语言。.innerHTML是“大锤”,使用于一大段HTML内容插入到文档中。

DOM方法创建标签

DOM方法的实质就是在修改DOM节点树,在浏览器看来DOM节点树才是文档。

实质就是不是在创建标记,而是在修改节点树,从DOM角度出发才是问题的关键。在DOM看来,想要在节点树上添加内容就是要添加节点,如果你向添加一些标记到文档中,就要插入元素节点。

一.createElement方法

语法:document.createElement(nodeName);

我们来创建一个一个p元素:document.createElement("p").

二.appendChild方法

语法: parent.appendChild(child);

我们只是创建了一个新元素,但是并没有加到节点树中。把新建的节点插入到节点树中的最简单的方法就是:让这个新节点成为某个现有节点的一个子节点。

例如: 在<body>中添加 <p>

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div id = "box"></div>
  11. <script type="text/javascript">
  12. var pEle = document.createElement("p");
  13. pEle.innerHTML = "hello world";
  14. var box = document.getElementById("box");
  15. box.appendChild(pEle);
  16. </script>
  17. </body>
  18. </html>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多