DOM(文档对象模型)

具体细节参考:

https://www.runoob.com/jsref/dom-obj-document.html

(一)DOM节点

节点类型

在文档对象模型中,每一个元素都是节点。
1、文档节点(9---文档是一个文档节点;
2、元素节点(1---HTML元素都是元素节点;
3、属性节点(2---HTML属性都是属性节点;
4、文本节点(3---插入到HTML元素的文本都是文本节点;
5、注释节点(8---注释是注释节点;

节点方法

document.createTextNode()	 创建文本节点
元素.appendChild()		   末尾添加新节点
元素.insertBefore(新,原)	 在已有节点前插入新节点
元素.removeChild()	       移除其子节点
元素.remove()		    	  移除自身
元素.replaceChild(新,旧)	替换子节点

节点属性

(如果没有子节点,则返回null)
element.childNodes		元素的所有子节点
element.parentNode		某节点的父节点
element.ownerDocument	某元素的根元素
element.firstChild		第一个子节点
element.lastChild		最后一个子节点
element.preiousSibling	元素的前一个兄弟节点
element.nextSibling		元素的后一个兄弟节点
// 节点元素查找
element.children			    所有子元素
element.firstElementChild		第一个子元素节点
element.lastElementChild 		最后一个子元素节点
element.previousElementSibling	前一个兄弟节点
element.nextElementSibling		后一个兄弟节点
// 拷贝
element.cloneNode(boolean) : 复制一个节点
	true:深复制,复制节点及其整个子节点树
	false : 浅复制,只复制节点本身。默认是false
	cloneNode() 方法 拷贝所有属性和值

(二)文档对象

获取DOM

document.body	返回body元素
// 获取一个
document.getElementById("id名");
document.querySelector("选择器");
// 获取多个
document.querySelectorAll("选择器");
document.getElementsByClassName("class名");
document.getElementsByTagName("标签名");
document.getElementsByName("name名");
---多个DOM返回是一个集合,HTMLCollection,是数组形式
  (用下标访问,如lis[i],但不能用数组方法直接进行操作)

其他

document.write()	// HTML表达式或JavaScript代码
document.writeIn()// 同上,且多在末尾添加一个换行符
document.createElement() 	//创建元素节点
document.createTextNode()	// 创建文本节点
document.domain()			// 当前文档的域名
...

(三)元素对象

元素类名

element.classList()	// 返回元素类名;
element.className()	// 设置或者返回元素class属性
element.classList.add()	//添加一个或多个元素类名
element.classList.remove()	//移除一个或多个元素类名
element.classList.contains() //判断指定元素类名是否存在
element.classList.item() // 类名在元素中的索引值
element.classList.toggle(class, true|false) //切换类名	
----(第一个参数为要在元素中移除的类名,并返回 false。 
如果该类名不存在则会在元素中添加类名,并返回 true。 
第二个是可选参数,是个布尔值用于设置元素是否强制添加或移除类,不管类名是否存在。)

元素属性

element.getAttribute("属性")	// 获取元素某属性
element.setAttribute("属性")	// 设置元素某属性
element.removeAttribute("属性")	// 删除元素某属性
element.hasAttribute("属性")  // 判断元素是否有某属性
element.hasAttributes()		// 判断元素是否有属性

元素内容

element.innerHTML:  设置或获取对象标签内的HTML (不包含自身)
element.value:      设置或获取表单元素内容
element.innerText:  设置或获取元素内容
element.outerHTML:  设置或获取元素内容的HTML形式

元素样式

element.style.属性 = "属性值";
element.style.cssText = "属性:属性值;属性:属性值"

元素宽高度

//获取元素的宽高度(包含内边距,边框)
element.offsetWidth
element.offsetHeight
//获取元素的宽高度(不含边框)
element.clientWidth
element.clientHeight
//距离浏览器的实际距离
element.offsetTop	//距离浏览器顶端的实际距离
element.offsetLeft	//距离浏览器左边的实际距离

(四)事件对象

鼠标事件

onclick			用户点击某个对象时调用的事件句柄
ondblclick 		双击
onmousedown		鼠标按下
onmouseup		鼠标松开
onmouseenter	移入(不包括子元素)
onmouseleave	移出(不包括子元素)
onmouseover		移入(包括子元素)
onmouseout		移出(包括子元素)
onmousemove		移动
oncontextmenu	右击

键盘事件

---两个"按下"返回keycode是不同的
onkeydown	按下(识别功能键;不区分输入内容大小写)
onkeypress	按下(不识别功能键;区分输入内容大小写)
onkeyup		松开

表单事件

onfocus		获取焦点
onblur		失去焦点
onchange	内容改变时触发(input、select、textarea)
oninput		元素获取用户输入时触发
onselect	用户选取文本时触发(input和textarea)
onreset		表单重置时触发
onsubmit	提交时触发

事件对象的属性和方法

event.type 获取事件类型
event.clientX/clientY  获取窗口位置
event.target || event.srcElement 用于获取触发事件的元素
event.preventDefault() 取消默认行为、阻止默认事件
event.stopPropagation();   阻止冒泡

(五)Console对象

console.log()	//信息
console.info()	//信息
console.error()	//错误信息
console.warn()	//警告信息
console.group()	// 信息分组
console.groupEnd()// 信息分组结束
console.time()// 计时器,开始计时间,与 timeEnd() 联合使用,用于算出一个操作所花费的准确时间。
console.timeEnd()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

[chao]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值