第11章 DOM扩展

DOM扩展包括选择符API和HTML5

选择符API

querySelector() 返回匹配的第一个元素,无则Null
querySelectorAll() 返回nodeList ,无则Null
matchesSelector() 返回boolean 一般不用

元素遍历

var i,len,child=element.firstElementChild;
while(child!=element.lastElementChild){
	processChild(child);
	child=child.nextElementSibling;
}

HTML5

与类相关的扩充
getElementsByClassName()

classList属性,包含方法有:
add()
contains()
remove()
toggle()

焦点
元素获得焦点的方式有:
页面加载
用户输入
focus()

document.activeElement属性获得当前焦点元素
判断是否获得焦点hasFocus()

HTMLDocument的变化

readyStates属性,值有loading complete

IE兼容模式,compatMode属性,值有:
标准模式CSS1Compat
混杂模式BackCompat

字符集属性
document.charset属性(火狐不支持),默认utf-16
Firefox只支持document.Charactrset

自定义数据属性
为元素添加非标准属性时,在属性前加data-
获取其属性时使用dataset

<div id="myDiv" data-appId="12345"> </div>

var div = document.getElementById("myDiv");
console.log(div.dataset.appId) //123456

插入标记
innerHTML
outerHTML

insertAdjacentHTML(arg1,htmlStr);
第一个参数必须为下列之一
beforebegin 元素之前插入同辈元素
afterend 元素之后插入同辈元素
afterbegin 元素之内最前面插入子元素
beforeend 元素之内最后面插入子元素

内存和性能
innerHTML效率快,创建和销毁会带来性能损失,所以使用次数尽量少。

文档模式
IE的文档模式
IE5默认混杂模式,IE7及以上是标准模式,低版本不能用高版本新增功能。可通过修改HTTP头部信息X-UA-Compatible或标签设置。

<meta http-equiv="X-UA-Compatible" content="IE=IEVersion">

IEVersion可为
Edge 最新文档模式
EmulateIE9 有文档生命则以IE9,无则IE5
EmulateIE8 有文档生命则以IE8,无则IE5
EmulateIE7 有文档生命则以IE7,无则IE5
9 强制IE9
8 强制IE8
7 强制IE7
5 强制IE5

document.documentMode获取当前文档模式

children属性
IE8及之前包含注释节点,IE9之后版本只返回元素节点,和childNodes相比,除了只包含元素子节点外,其他都一样。

contains()方法
document.documentElement.contains(document.body) true
配合能力检测写出的兼容浏览器的函数

function contains(refNode,otherNode){
	if(typeof refNode.contains =="function" && 		 
	(!client.engine.webkit || client.engine.webkit>=522)){
		return refNode.contains(otherNode);
	}else if(typeof refNode.compareDocumentPosition ==
	 "function"){
		return !!(refNode.compareDocumentPosition(otherNode) & 16);
	}else{
		var node =otherNode.paretNode;
		do{
			if(node==refNode){
				return true;
			}else{
				node=node.parentNode;
			}
		}while(node!=null); //null说明到顶点了
	}
	return false
}

插入文本
innerText
outerText

滚动

scrollInToView(boolen)
默认true,顶端与视口平齐,false底端与视口平齐
scrollIntoViewIfNeeded(alignCenter) 当前元素不可见才滚动

scrollBylines(lineCount) 将元素滚动到指定行高
scrollByPages(pageCount) 将元素滚动到指定页面高度

前2种影响元素容器
后2种影响元素自身

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值