节点中添加内容或者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"