DOM小结
1.只有getElementById
是Element单数,其余为复数;
-
1.getElementById,getElementsByName只有Document.prototype才有!!!!!! -
2. getElementsByTagName ,getElementsByClassName ,querySelector(),querySelectorAll()
,这四个函数在Document.prototype
和Element.prototype
里面都有!!!!!!
2.querySelector() querySelectorAll
一般不用;
3.nextSibling
与nextElementSibling
区别:
nextSibling属性返回元素节点之后的兄弟节点(包括文本节点、注释节点即回车、换行、空格、文本等等);
nextElementSibling属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点);
4.节点类型:
-
1.元素节点 -> 1 -
2.属性节点 --> 2 -
3.文本节点 -> 3 -
4.注释节点 -> 8 -
5.document -> 9 -
6.DocumentFragment -> 11
div.nodeType
// 1
div.getAttributeNode('class').nodeType
//2
div.getAttributeNode('id')
// box
div.getAttributeNode('id').nodeType//2
div.firstChild.nodeValue = "hello"
div.firstChild.nodeType
// 3
5.判断对象类型,这里可以判断是什么类型的标签
Object.prototype.toString.call(div)
//"[object HTMLDivElement]"
-
* --->获取标签用的,只能配getElementsByTagName, 获取所有元素节点
var all = document.getElementsByTagName('*')
console.log(all)
var body = document.body;//这里的body是通过document.body来使用的,这个属性是系统内置的,只能使用,不能访问
//HTMLDocument.prototype.body //会报错
var head = document.head;
7.添加自定义属性:
<a href="javascript:;" data-uri="txwz" data-sort="free">天下无贼</a><br/>
<a href="javascript:;" data-uri="fczlm" data-sort="pay">复仇者联盟</a><br/>
<a href="javascript:;" data-uri="hgf" data-sort="free">黑寡妇</a><br/>
<a href="javascript:;" data-uri="gtx" data-sort="pay">钢铁侠</a><br/>
//HTML5给元素增加了一个 data- * 属性
var p = document.getElementsByTagName('p')[0];
p.dataset
// DOMStringMap {name: 'linus', age: '18'}
// age: "18"
// name: "linus"
p.dataset.name
// 'linus'
p.dataset.age
// '18'
p.getAttribute('data-name')
// 'linus'
p.getAttribute('data-age')
// '18'
8.与ul
和li
相关的文档碎片操作(可以提高性能)
<ul id="list"></ul>
var oUI = document.getElementById('list');
var oFrag = document.createDocumentFragment();
for (let i = 0; i < 1000; i++) {
var oLi = document.createElement('li');
oLi.innerHTML = i + ': 这是第' + i + '个项目';
oLi.className = 'list-item';
// oUI.appendChild(oLi)
oFrag.appendChild(oLi)//注意:这里的oFrag不在DOM节点树里面!!!
}
oUI.appendChild(oFrag);
原文始发于微信公众号(迪哥讲事):JS基本功系列-DOM小结
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论