怎样往jsdom节点里添加字符串

JavaScript031

怎样往jsdom节点里添加字符串,第1张

节点中添加内容或者HTML代码,首先要获取节点的对象,然后进行操作。

假设我们有一个节点:

<div id="name"></div>

我根据上面的节点做一下举例说明:

原生JS:

document.querySelector('#name').innerHTML = '我是被添加的内容'

jQuery:

$('#name').html('我是被添加的内容')

两种方法运行结果是一样的,如下图:

最简单的方法就是用元素的innerHTML属性赋值,如:myNewElement.innerHTML = “我是文本”但这样不能清晰的体现DOM中新增加了一个文本节点。

然后另一种添加文本节点的方式,可分为两步:

1、创建节点:文本节点的创建使用createTextNode方法,如:var myText = document.createTextNode(“我是文本”)

2、将创建的节点用appendChild方法添加某个元素下。如:myNewElement.appendChild(myText)这样myNewElement就有myText的文本节点,文本节点的内容是“我是文本”即可。

获取属性节点

第一种方法:获取官方定义的属性节点(获取元素的对应属性值)。

格式:元素节点,属性名。

注意:不能获取自定义属性的值。

代码如下:

console.log(jsInput.placeholder)

alert("是时候展现真正的技术")

设置属性节点的值

公式:元素节点 . 属性名 = 新的属性值

代码如下:

//设置元素对应属性的值

//元素节点.属性名 = 新的属性值

jsInput.placeholder = "sunck good"

第二种方法

公式:元素节点 . getAttribute(属性名)

注意:还可以获取自定义属性的值。

代码:

console.log(jsInput.getAttribute("my"))

设置自定属性的值

公式:元素节点 . setAttribute(属性名, 新属性值)

注意:当属性不存在时,变为添加属性

代码:

//设置

//元素节点.setAttribute(属性名, 新属性值)

jsInput.setAttribute("my", "sunck")

//注意:当属性不存在时,变为添加属性

jsInput.setAttribute("other", "sunck")

删除属性节点

公式:元素节点.removeAttribute(属性名)

注意:某些低版本浏览器不支持

代码:

jsInput.removeAttribute("other")

console.log(jsInput)

//js 字符串中插入内容的方法是重写原型中的splice()方法:

//1、原型定义如下:

if (!String.prototype.splice) {

    String.prototype.splice = function(start, delCount, newSubStr) {

        return this.slice(0, start) + newSubStr + this.slice(start + Math.abs(delCount))

    }

}

//2、重写后代码如下:

String.prototype.splice = function(idx, rem, str) {

    return this.slice(0, idx) + str + this.slice(idx + Math.abs(rem))

}

//3、使用方法:

var result = "foo baz".splice(4, 0, "bar ")

document.body.innerHTML = result 

//结果:在 "foo bar"中的第4个位置插入字符串bar ,变成:"foo bar baz"