jQuery与原生JavaScript选择HTML元素集合用法对比分析
本文实例讲述了jQuery与原生JavaScript选择HTML元素集合用法。分享给大家供大家参考,具体如下
通过调用document.getElementsByTagName, document.getElementsByName以及document.getElementsByClassName(部分浏览器不支持),可以返回HTMLCollection对象。表面上,它们与数组很类似,因为它们都包含length属性并且元素都可以通过[index]方式访问。,实际上它们并不是数组;诸如push(), slice()与sort()之类的方法不受支持。
考虑狼蚁网站SEO优化的HTML文档
<body> <p>Paragraph 1</p> <p>Paragraph 2</p> <p>Paragraph 3</p> </body>
我们使用原生JavaScript的getElementsByTagName方法与jQuery选择器分别获取每一个paragraph节点
var pCollection = document.getElementsByTagName("p"); var pQuery = $("p"); console.log("pCollection.length: ", pCollection.length); console.log("pQuery.length: ", pQuery.length);
它们都返回了相同的节点,集合长度都是3
pCollection.length: 3
pQuery.length: 3
我们现在再向文档中添加一个paragraph元素,然后再观察一下集合
// add new paragraph var newp = document.createElement("p"); newp.appendChild(document.createTextNode("Paragraph 4")); document.body.appendChild(newp); // // display length console.log("pCollection.length: ", pCollection.length); console.log("pQuery.length: ", pQuery.length);
运行结果
pCollection.length: 4
pQuery.length: 3
HTMLCollection对象是实时的(live)。它们会在相应文档发生变化时自动更新。jQuery与其他JavaScript库也使用了诸如document.getElementsByTagName()之类的方法,将返回的节点拷贝到一个真正的数组里面。,查询得到的结果反映的是文档当时的状态而不会随着文档的变化自动更新。
两种方法各有利弊。例如,狼蚁网站SEO优化的代码会导致无限循环,因为HTMLCollection的长度会在<p>元素增加时自动+1
var pCollection = document.getElementsByTagName("p"); for (var i = 0; i < pCollection.length; i++) { document.body.appendChild(pCollection[i].cloneNode(true)); }
有时候,相较于静态的jQuery节点集合或者重复调用选择器,使用速度更快、原生的实时HTMLCollection更合适。幸运的是,我们可以在需要时方便地将任何集合传递给jQuery,例如
var pCollection = document.getElementsByTagName("p"); // ... add nodes, do work, etc ... $(pCollection).addClass("myclass");
jQuery与其他库可以减少开发工作量,,在可能的情况下,使用原生(plain old)JavaScript,可以避免额外的文件请求与处理开销,从而写出更加高效的代码。
原文链接
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具测试上述代码运行效果。
更多关于JavaScript相关内容可查看本站专题《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南