首页 技术 正文
技术 2022年11月17日
0 收藏 502 点赞 2,403 浏览 2591 个字
  • Selector API
  • HTML5 DOM扩展
  • Element Traversal规范

Selector API众多JavaScript库中,最常用的一个功能就是根据css选择符选择与某个模式匹配的DOM元素Selector API Level1的核心是两个方法:querySelector、querySelectorAll 可以通过Document及Element的实例来调用他们。当使用Element调用时,首先会在整个文章中查询,然后取出在Element子节点中的元素返回。如果传入了不支持的选择符,会报错。querySelectorAll()方法返回的是一个NodeList的实例。能够调用这个方法的类除了DOcument与Element外,还包括DocumentFragment。 Selector API Level2规范为Element类型新增了一个matchesSelector()方法。这个方法接收一个参数:css选择符。如果元素与选择符匹配则返回true,否则返回false。element.matchesSelector(selector);            规范element.msMatchesSelector(selector);        ieelement.mozMatchesSelector(selector);      ffelement.webkitMatchesSelector(selector);   webkit Element Traversal APIIE9及之前版本不会返回文本节点,而其他浏览器都会返回文本节点,导致了firstChild和childNodes的不一致。新出的traversal 规范为:

  • childElementCount
  • firstElementChild
  • lastElementChild
  • previousElementSibling
  • nextElementSibling

 HTML5 DOM扩展getElementsByClassName() ,Document或Element类型可以使用,返回的是一个NodeList的实例。Ie9+支持calssList属性在操作类名时,需要通过className属性添加删除。一般做法是为className前后加上一个空格,对要增加或删除的类座同样处理,然后进行字符串的拼接,删除,替换工作;成功后删除className首尾的空格。HTML5中为所有元素新增的classList属性。包含以下方法:add、contains、remove、toggle焦点管理HTML5添加了辅助管理DOM焦点的功能。document.activeElement属性,这个属性始终会引用DOM中当前获得了焦点的元素。元素获取焦点的方式有页面加载、用户输入、在代码中调用了focus方法。默认情况下,文档刚加载完时,document.activeElement中保存的是document.body元素的引用。文档加载期间,document.activeElement为null.所有浏览器都支持该属性。HTMLDocument的变化。1、readyState属性document.readyState属性,两个可能值:loading、complete2、兼容模式:document.compatMode;正常模式“CSS1Compat”混杂模式“BackCompat”3、head属性:head = document.head || document.getElementsByTagName(“head”)[0]   (webkit浏览器实现)4、自定义数据属性HTML5规定可以为元素添加非标准的属性,但要添加“data-”前缀。这些属性可以任意添加、随便命名,只要以data-开头即可。添加了自定义属性之后,可以通过元素的dataset属性来访问自定义属性的值。5、标记与文本innerHTML、outerHTML;innerText、outerText都是IE的自定义属性,后来innerHTML与outterHTML被纳入规范。读模式下,innerHTML属性返回调用元素的所有子节点的html标记;写模式下,innerHTML会根据指定的值创建新的DOM树,然后用这个DOM树完全替换调用元素的所有子节点。不要指望所有浏览器的innerHTML返回的值都相同。使用innerHTML替换元素字节点时,要将当前元素子节点中的JavaScript属性和事件处理程序都删除,防止内存泄露。innerHTML中不要script和style标签,这两者不会生效。并不是所有的浏览器都支持innerHTML,比如<html>、<head><style><title>,<table>相关标签。为这些元素设置innerHTML时,最好换一种方式:先清空元素,然后将innerHTML转化成dom节点,插入到元素中。6、insertAdjacentHTML()方法两个参数:插入位置和要插入的html文本。插入位置:beforebegin、afterbegin、beforeend、afterend这些值必须是小写形式7、scrollntoViewelement.scrollIntoView()某元素滚动到视口。 专有扩展文档模式:<meta http-equiv=”X-UA-Compatible” content=”IE=Edge”>使用最新版本渲染children属性这个属性是HTMLCollection的实例,只包含元素总同样还是元素的子节点。IE8及更早之前的版本还会包含注释节点,IE9修复了这个问题。contains()方法判断一个元素是不是另一个元素的子节点。IE、ff、chrome都支持。插入文本innerText读取时,会按照由浅入深的顺序,将子文档树种的所有文本拼接起来。写入时,会删除所有子节点,插入包含相应文本值的文本节点。ff不支持这个属性,但支持textContent。所以在设置innerText或者textContent时,最好先清空子节点,然后使用document.createTextNode()创建文本节点插入。该方法会对字符串中红的文本进行转义,比如:<p>test</p>                   

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,999
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,511
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,357
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,140
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848