DOM(文档对象模型)是W3C定义的一个标准。在实际开发中,为了实现动态修改元素的效果,可以DOM提供的方法。
常见的DOM节点:元素节点,属性节点,文本节点。
获取元素:
getElementById():通过id来选中元素
document.getElementById("id")
getElementByTagName():通过标签来选中元素
document.getElementByTagName("tag")
- getElementById()获取的是一个元素,getElementByTagName()获取的是多个元素(伪数组)。
- getElementById()前只可以接document,而getElementByTagName()前不仅可以接document,还可以接其他DOM对象。
- getElementById()不可以操作动态创建的DOM元素,而getElementByTagName()可以。
getElementByClassName():通过class来选中元素,获取一个伪数组,但是不能操作动态DOM。
document.getElementByClassName("class")
querySelector()和querySelectorAll():通过CSS选择器的语法来获取所需要的元素。
document.querySelector("selector")
document.querySelectorAll("selector")
querySelector()选取满足条件的第一个元素,querySelectorAll()选取满足条件的所有元素。
getElementsByName():通过name属性来获取表单元素。
document.getElementByName("name")
创建元素:通过createElement()来创建一个元素节点,使用createTextNode()来创建一个文本节点。这种方式被称为“动态DOM操作”,即使用JavaScript创建的元素。
加入元素: appendChild()、insertBefore()
A.append(B);
A.insert(B,ref); //在ref前插入B
A表示父元素,B表示新元素,ref表示指定元素。
删除元素: removeChild()
A.removeChild(B);
A表示父元素,B表示某个子元素。
复制元素: cloneNode()
obj.cloneNode(bool);
obj表示被复制的元素。bool值为1或者true时,复制元素本身和该元素下的所有子元素;值为0或者false时,仅复制本身。
替换元素: replaceChild()
A.replaceChild(new,old);
A表示父元素,new表示新子元素,old表示旧子元素。