首页 >web前端 >前端问答 >在javascript中创建节点的方法有哪些

在javascript中创建节点的方法有哪些

青灯夜游
青灯夜游原创
2021-10-13 17:00:1015038浏览

javascript中创建节点的方法:1、createElement()方法,可以创建元素节点;2、createTextNode()方法,可以创建文本节点;3、createAttribute()方法,可以创建属性节点。

在javascript中创建节点的方法有哪些

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

javascript中创建节点的方法

1、createElement()方法:创建元素节点

使用 document 对象的 createElement() 方法能够根据参数指定的标签名称创建一个新的元素节点,并返回新建元素的引用。用法如下:

var element = document.getElement("tagName");

其中,element 表示新建元素的引用,createElement() 是 document 对象的一个方法,该方法只有一个参数,用来指定创建元素的标签名称。

【示例1】下面代码在当前文档中创建了一个段落标记 p,存储到变量 p 中。由于该变量表示一个元素节点,所以它的 nodeType 属性值等于 1,而 nodeName 属性值等于 p。

var p = document.createElement("p");  //创建段落元素
var info = "nodeName:" + p.nodeName;  //获取元素名称
info += ", nodeType:" + p.nodeType;  //获取元素类型,如果为1则表示元素节点
console.log(info);

使用 createElement() 方法创建的新元素不会被自动添加到文档里。如果要把这个元素添加到文档里,还需要使用 appendChild()、insertBefore() 或 replaceChild() 方法实现。

【示例2】下面代码演示如何把新创建的 p 元素增加到 body 元素下。当元素被添加到文档树中,就会立即显示出来。

var p = document.createElement("p");  //创建段落元素
document.body.appendChild(p);  //增加段落元素到body元素下

2、createTextNode() 方法:创建文本节点

使用 document 对象的 createTextNode() 方法可创建文本节点。用法如下:

document.createTextNode(data)
  • 参数 data 表示字符串。

示例

下面示例创建一个新 div 元素,并为它设置 class 值为 red,然后添加到文档中。

var element = document.createElement("div");
element.className = "red";
document.body.appendChild(element);

由于 DOM 操作等原因,可能会出现文本节点不包含文本,或者接连出现两个文本节点的情况。为了避免这种情况的发生,一般会在父元素上调用 normalize() 方法,删除空文本节点,合并相邻文本节点。

3、createAttribute()方法:创建属性节点

使用 document 对象的 createAttribute() 方法可以创建属性节点,具体用法如下:

document.createAttribute(name)

参数 name 表示新创建的属性的名称。

示例1

下面示例创建一个属性节点,名称为 align,值为 center,然后为标签 0cb0d37bd827c253db804f192a046bde 设置属性 align,最后分别使用 3 种方法读取属性 align 的值。

<div id="box">document.createAttribute(name)</div>
<script>
    var element = document.getElementById("box");
    var attr = document.createAttribute("align");
    attr.value = "center";
    element.setAttributeNode(attr);
    console.log(element.attributes["align"].value);  //"center"
    console.log(element.getAttributeNode("align").value);  //"center"
    console.log(element.getAttribute("align"));  //"center"
</script>

属性节点一般位于元素的头部标签中。元素的属性列表会随着元素信息预先加载,并被存储在关联数组中。例如,针对下面 HTML 结构。

<div id="div1" title="div"></div>

当 DOM 加载后,表示 HTML div 元素的变量 divElement 就会自动生成一个关联集合,它以名值对形式检索这些属性。

divElement.attributes = {
    id : "div1",
    class : "style1",
    lang : "en",
    title : "div"
}

在传统 DOM 中,常用点语法通过元素直接访问 HTML 属性,如 img.src、a.href 等,这种方式虽然不标准,但是获得了所有浏览器的支持。

示例2

img 元素拥有 src 属性,所有图像对象都拥有一个 src 脚本属性,它与 HTML 的 src 特性关联在一起。下面两种用法都可以很好地工作在不同浏览器中。

<img id="img1" src="" />
<script>
    var img = document.getElementById("img1");
    img.setAttribute("src", "http://www.w3.org");  //HTML 属性
    img.src = "http://www.w3.org";  //JavaScript 属性
</script>

类似的还有 onclick、style 和 href 等。为了保证 JavaScript 脚本在不同浏览器中都能很好地工作,建议采用标准用法,而且很多 HTML 属性并没有被 JavaScript 映射,所以也就无法直接通过脚本属性进行读写。

【推荐学习:javascript高级教程

以上是在javascript中创建节点的方法有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn