DOM2 DOM3

DOM变化

DOM2核心增强既有类型
DOM3核心增强既有类型并且引入新类型
DOM2视图和DOM2HTML 增强DOM接口

判断是否有对应的能力
document.implementation.hasFeature(能力,版本)

新增XML命令空间
DocumentType新增3个属性:publicId systemId internalSubset
Document新增importNode()方法 将节点导入另一个文档
Node新增isSupported()方法判断当前节点是否具有某能力
框架和内嵌框架新增contentDocument,包含一个指针指向框架内容的文档对象。

样式

访问元素样式a-b(font-Family)要用驼峰转换才能通过js访问style.fontFamily
由于float是保留字,所以要用cssFloat属性来访问,IE用styleFloat
新属性和方法
cssText 访问style中的代码
length 元素CSS属性的数量
parentRule 表示CSSRule对象
getPropertyCSSValue(propertyName) 包含给定属性值的CSSValue对象
getPropertyPriority(propertyName) 如果给定的属性使用了!important,则返回important,否则空字符串
getPropertyValue(propertyName) 返回给定属性的字符串值
item(index) 返回给定位置的CSS属性的名称
removeProperty(propertyName) 删除给定属性
setProperty(propertyName,value,priority) 设置相应的值,并加上优先权标志(important或者一个空字符串)

计算的样式
获取嵌入式样式表(<style >里的样式)和样式表规则(html标签中的样式),计算出最终的结果
document.defaultView.getComputedStyle(myDiv,null)
IE需要使用mydiv.currehntStyle

操作样式表
先判断是否支持DOM2样式表
document.implementation.hasFeature(“StyleSheets”,“2.0”);
获取样式表
document.sheets || document.styleSheets 后者IE

偏移量
offsetHeight
offsetWidth
offsetLeft
offsetTop

offsetParent是包含其的元素,但是不一定和parentNode相等。例如<td>元素的offsetParent是<table>,因为<table>是在DOM中距离<td>最近的具有大小的元素。

客户区大小
clientWidth 元素内容区宽度加左右内边距宽度
clientHeight 元素内容区高度加上下内边距高度
可以使用document.documentElement.clientWidth和clientHeight.
IE7之前只支持document.body.clientWidth和clientHeight.

滚动大小
overflow属性:
scrollHeight 没有滚动条的情况下,元素内容的总高度
scrollWidth 没有滚动条的情况下,元素内容的总宽度
scrollLeft 被隐藏在内容区域左侧的像素数
scrollTop 被隐藏在内容区域上方的像素数

由于不同浏览器2组属性意义不一样。判断 scrollWidth scrollHeight 和 clientWidth clientHeight 的最大值Math.max(),即可判断文档的总高度。

遍历

IE不支持遍历
判断是否支持
document.implementation.hasFeature(“Traversal”,“2.0”);
(typeof document.createNodeIterator == “function”)
(typeof document.createTreeWalker == “function”)

范围

富文本编辑器中会使用该对象,详情后续补充
document.implementation.hasFeature(“Range”,“2.0”);
(typeof document.createRange == “function”)

var range1=document.creatRange(),
	range2=document.creatRange(),
	p1=document.getElementById("p1");
	range1.selectNode(p1); //包括p1及其子元素
	range2=selectNodeContents(p1); //只包括p1的子元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值