欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript下DOM的基础学习之动态创建标签

程序员文章站 2022-08-05 21:29:10
javascript不仅可以用来改变网页的结构和内容,还可以通过创建新元素和修改现有元素来改变网页结构。 在学习利用dom方法在web中添加标记时,常常能想到document.write()和ele...

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

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

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

例如:

<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title>document</title>
</head>
<body>
    <script type="text/javascript">
    document.write("<p>hello world</p>")
    </script>
</body>
</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>

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title>document</title>
</head>
<body>
    <p id = "box"></p>
    <script type="text/javascript">
    var pele = document.createelement("p");
    pele.innerhtml = "hello world";
    var box = document.getelementbyid("box");
    box.appendchild(pele);
    </script>
</body>
</html>