持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情
DOM:
document object model 文档对象模型,浏览器在解析整个页面时,会把html页面中的标签都解析为一个对象,标签对象都会以树形结构存储在html对象,最终的对象就是DOM。
元素查找:
var obj = document.getElementById("title"); 获取DOM中id值为xxxx的元素对象
.getElementsByClassName 获取dom中class值包含xxx的元素对象,返回值是一个类似数组的对象(类数组),这个对象可以像数组一样使用索引访问容器中的元素,也有length属性,但是没有数组的其他方法。
.getElementsByTagName("p"); 获取dom中标签名为xxx的元素对象,返回值是一个类数组。
.querySelector("#title"); 查询dom中第一个符合选择器的元素对象。
.querySelectorAll("p"); 所有符合
元素属性修改:
var title = document.getElementById("title");
title.style.color = "red"; 通过style属性修改样式
title.style.fontSize = "20px"; 在css中样式名是通过-分割,在js中样式名遵循驼峰命名法。通过js修改的样式,实际是修改了行内样式。
title.textContent = "js还可以修改元素的内容"; 修改元素的内容textContent设置的内容标签会显示为标签。
title.innerHTML = "js还可以修改元素的内容"; 修改元素内容,标签会被解析成元素对象。
大部分的html属性都可以在js中通过元素对象的同名属性进行修改,例如a标签的href属性,img的src属性,input的placeholder属性等。例如:
var link = document.getElementById("link");
link.href = "mail.163.com";
元素自定义属性:
box.setAttribute("first","通过setAttribute添加的自定义属性");第一个参数是属性名,第二个参数是属性值(属性值只能是字符串)
var t1 = box.getAttribute("title"); 获得元素对象的某个标签属性,参数是要获取的属性的名字,返回值就是获得的属性值。
元素的创建、添加、删除:
var t1 = document.createElement("h1"); 创建一个元素对象,参数是要创建的元素名字,返回值是创建的元素对象。创建的元素必须添加到dom中才能显示。
document.body.appendChild(t1); 为这个元素添加一个子元素,参数是要添加的子元素对象,被添加的子元素会排列到最后。
ul.insertBefore(li,li2); 为元素对象添加一个子元素,插入到另一个子元素之前。第一个参数表示要添加的元素对象,第二个参数表示添加在谁之前。
ul.remove(); 从dom中删除这个元素。
document.body.removeChild(ul); 删除元素对象的某个子元素。
元素的尺寸和位置:
clientWidth clientHeight 元素的宽高
offsetWidth offsetHeight 带边框的宽高
offsetLeft offsetTop 获得元素相对于浏览器窗口的坐标
innerWidth innerHeight 浏览器窗口的宽高(工作区,即页面的显示区域)
scrollTop 表示元素的纵向的滚动偏移量
scrollHeight 表示元素的内容高度
元素内容高度(scrollHeight) - 元素本身高度 (clientHeight)= 最大偏移量(scrollTop )
jqueryDOM属性操作:
.css 用于设置或获取元素的样式值(多个样式可写为对象)
.text 设置或获取元素的内容(一个参数表示设置内容,不写参数表示获取)
.html 设置或获取元素的内容(html会被显示为元素标签,text会被显示为字符串)
.addClass 用于为元素添加一个class值
.removeClass 用于删除一个class
.toggleClass 用于切换一个class
.hasClass 用于判断元素是否包含某个class值,包含返回true
.attr 用于设置或获取元素的属性(两个参数表示设置内容,一个参数表示获取)
.prop 对于只有属性名,可以没有属性值的属性
attr和prop区别:具有true和false两个属性的属性,如disabled,checked,selected使用prop()
.val 用于设置或获取元素的value值(一个参数表设置,不写参数表获取)