Document Object Model 文档对象模型作用:通过DOM对象可以访问和操作html文件的每一个标签。
html文档加载到浏览器的内存中后,我们认为形成了一颗DOM树,即html标签按照层级结构而形成了一颗“家谱树”,而任何一个html标签、标签属性和文本都是这个树上的节点元素。
我们可以通过js的DOM组件中的方法对内存中的DOM树上的结构和内容进行修改,即通过js动态的修改内存中的那一份html及css的代码。
W3C组织规定:当浏览器把一个html文件加载到内存中之后,这个html文件,就是一个Document对象。
并且在浏览器加载html文件中的所有标签时,把html文件中的所有标签页加载成不同的对象,以及标签中的属性,也加载成对象,标签中的文本也加载成对象。
浏览器在加载某个标签时,标签的文本数据,被加载成当前标签的一个子标签。当我们把一个html文件加载完成之后,他们就得到这个html文件中的所有标签,属性,文本对象。
可以使用js技术结合Document对象,对html文件中的所有标签,进行各种操作。在浏览器把html文件加载完成之后,标签被称作标签对象(元素节点),标签中的文件称为文本节点(文本对象),标签的属性称为属性节点(属性对象)。
1.1.1. 标签元素的操作
获得元素对象
document.getElementById(“ID名”);
返回指定的id对象
下面三个获取的都是一个数组!
document.getElementsByName("name名"); 返回指定name值的对象集合
document.getElementsByTagName("标签名"); 返回指定标签名的对象集合
document.getElementsByClassName("class名"); 返回指定class名的对象集合
在js中不分数据类型,所以可以直接通过var object接收集合
var username = document.getElementsByTagName('input');
alert(username);
document.getElementsByName(“name名”);
document.getElementsByTagName(“标签名”);
document.getElementsByClassName(“class名”);
document.createElement(“tagName”); 创建标签对象
需要与appendChild() 或 insertBefore()方法联合使用
1.创建链接
在js中使用createElement创建HTML对象和元素
Element.innerHTML; 获取标签内部的所有内容
Element.innerText; 获取标签内部的文本内容
风花雪月
风花雪月
hasChildNodes(); 判断是否含有子节点,返回true或false
remove(); 删除当前标签对象,等同于自杀
removeChild(childElement); 通过父标签对象删除子标签对象
replaceChild(newChild,oldChild); 替换父节点下的子节点
appendChild(newChild); 向父标签下追加子标签对象
insertBefore(newChild,refChild); 向父标签下指定的子节点前添加标签对象
hasChildNodes();
remove();
removeChild(childElement);
- 北京
- 上海
- 广州
replaceChild(newChild,oldChild);
传智播客
appendChild(newChild);
insertBefore(newChild,refChild);
传智播客
获得属性的值:element.getAtrribute(“name”) element.属性名
一般来说,我们直接使用element.属性名即可,如果这种方法不行,就采用上述的方式来获取,如果用element.属性名获取class需要用className才能得到。
设置属性的值:element.setAtrribute(“name”,“value”)
可以直接采用element.属性名通过单等号来赋值
删除某个属性:element.removeAtrribute(“name”)