前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获取标签的那些事 之 动态集合

获取标签的那些事 之 动态集合

作者头像
HTML5学堂
发布2018-03-12 16:47:25
8790
发布2018-03-12 16:47:25
举报
文章被收录于专栏:HTML5学堂HTML5学堂

HTML5学堂:今天的内容从一道题开始,很简单,但是,你可能会“跪”得很惨。之后我们自然要挖一挖这个坑喽~所有学过JavaScript的人都知道获取标签,但是真的对它们足够了解么?

一起来看例子:

代码语言:javascript
复制
<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>HTML5学堂 - H5course</title>
    <meta name="viewport" content="width=device-width,user-scalable=no">
    <link rel="stylesheet" href="model/css/reset.css">
</head>
<body>
    <ul id="con">
        <li>HTML5学堂</li>
        <li>获取标签的那些事儿</li>
        <li>看上去很简单,但是你却未必能够正确</li>
    </ul>
    <script src="model/js/jquery-1.11.2.js"></script>
    <script>
        var con = document.getElementById('con');
        // 通过基本的DOM操作获取li元素
        var domLists = con.getElementsByTagName('li');
        // 通过querySelectorAll获取li元素
        var queryLists = con.querySelectorAll('li');
        // 通过jQuery获取li元素
        var jqLists = $('#con li');
 
        console.log(domLists.length);
        console.log(queryLists.length);
        console.log(jqLists.length);
 
        // 动态添加10个li
        for (var i = 0; i < 10; i++) {
            con.innerHTML += '<li>新增</li>';
        };
 
        console.log(domLists.length);
        console.log(queryLists.length);
        console.log(jqLists.length);
    </script>
</body>
</html>

打印的结果

如果是3,3,3,3,3,3。那么恭喜你~!成功掉坑~!

到底结果是多少?先看如下解释,自然就明白了~~~

querySelectorAll与getElementsBy系列的区别

querySelectorAll 返回的是一个 Static Node List,而 getElementsBy 系列的返回的是一个 Live Node List。

Static Node List:静态的节点列表,如何理解静态呢?也就是一个快照。对文档的任何操作都不会产生影响。

Live Node List:动态的节点列表。每一次调用这种列表时(如上为:domLists这个变量)都会重复对文档进行查询。

so,答案是多少你知道了吗?jQuery选择器的原理又是什么你应该也能推算出来了吧~?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 懂点君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 打印的结果
  • querySelectorAll与getElementsBy系列的区别
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档