DOM:document object model(文档对象模型)。
dom结构:浏览器在打开一个html页面之后,会针对当前打开的html页面中的所有标签进行渲染,把每一个标签都解析成一个对象,这些对象以树形的结构关联在一起,这种结构就是dom结构,也就是所谓的dom树。这些标签在解析之后会被存入到document中,document是页面主体标签的一个对象集合,叫做文档对象模型。
一切关于页面对象的操作,都需要经过document来访问,把标签以及样式通过dom转换成了对象或者是方法,js中不能直接操作html标签。
document代表当前页面的对象。
getElementById:根据id来查找元素。查找到之后会以对象的形式返回。let obj =document.getElementById("title");
console.log(obj)
getElementsByTagName:根据标签名查找符合的所有元素。返回一个列表。列表不是真正的数组,但是可以像数组一样使用索引对元素进行访问,也可以使用长度。
let p1 =document.getElementsByTagName("p");
getElementsByClassName:根据class样式查找符合的元素,返回一个列表。let lines =document.getElementsByClassName("line");
querySelector:根据样式选择器来查找某个元素。返回的是查询到的页面元素对象。let hello =document.querySelector("#title");
querySelectorAll:根据样式选择器来查找所有满足条件的元素,返回列表。let linqwe=document.querySelectorAll(".line")
textContent与innerHTML的区别textContent单一的显示文本,不去管文本内容,
innerHTML在设置内容的时候,会把内容中的标签解析为元素显示出来。
createElement:创建标签,参数是标签名称。let h1 =document.createElement("h1");
//给标签添加内容
h1.textContent ="这是通过js语法创建的h1标签";
appendChild:添加子元素。/* document.body代表body对象。
* 下面代码的意思:把一个名为h1的标签添加到body对象中。
*/
document.body.appendChild(h1);
insertBefore:将一个标签作为子元素插入到另一个标签中。/*
insertBefore,2个参数:
1参是要插入的元素对象,
2参是插入到哪个元素之前。
*/
document.body.insertBefore(h2,firstTitle);
//parentElement:表示本元素的父元素对象.
console.log(firstTitle.parentElement);
removeChild,删除子元素。document.body.removeChild(firstTitle);
如果元素的样式是通过css设置的,不能通过style属性来获取。
console.log(box.offsetWidth);
console.log(box.offsetHeight);
console.log(box.clientWidth);
console.log(box.clientHeight);
console.log(box.offsetLeft);
console.log(box.offsetTop);
console.log(box.clientLeft);
console.log(box.clientTop);
console.log(window.innerWidth);
console.log(window.innerHeight);
console.log(window.outerWidth);
console.log(window.outerHeight);