getElement系列和querySelector系列区别

知识回顾:

 ① document.querySelector方法接受一个 CSS 选择器作为参数,返回匹配该选择器的元素节点

 ② document.querySelectorAll方法与querySelector用法类似,区别是返回一个NodeList对象,包含所有匹配给定选择器的节点。

 ③ document.getElementsByClassName()方法返回一个类似数组的对象HTMLCollection实例),包括了所有class名字符合指定条件的元素,元素的变化实时反映在返回结果中。

 ④ document.getElementById()方法返回匹配指定id属性的元素节点。如果没有发现匹配的节点,则返回null

 ⑤ document.getElementsByTagName()方法搜索 HTML 标签名,返回符合条件的元素。它的返回值是一个类似数组对象HTMLCollection实例),可以实时反映 HTML 文档的变化。如果没有任何匹配的元素,就返回一个空集。

⑥ document.getElementsByName()方法用于选择拥有name属性的 HTML 元素(比如<form><radio><img><frame><embed>等),返回一个类似数组的的对象NodeList实例),因为name属性相同的元素可能不止一个。

区别:

querySelectorAll的返回结果不是动态集合,不会实时反映元素节点的变化。

    1)querySelector  IE低版本不支持

    2)getElement 可以获取动态新增的元素节点;

   querySelector 不支持动态新增的元素;

实例:

添加一个li为例

html部分:

  <ul>
            <li>我是第1个li</li>
            <li>我是第2个li</li>
            <li>我是第3个li</li>
            <li>我是第4个li</li>
            <li>我是第5个li</li>
  </ul>
  <button id = 'btn'>添加li</button>
  <script>

script部分:

<script>
            
            //1.获取元素节点

            let li1=document.getElementsByTagName('li')//返回类数组对象

            //用不同的获取方式获取li进行对比
            let li2=document.querySelectorAll('li')//返回类数组对象
            console.log(li1);//HTMLCollection(5)
            console.log(li2);//NodeList(5)

            //获取按钮
            let btn = document.getElementById('btn')

            //获取ul
            let ul = document.getElementsByTagName('ul')//类数组对象 获取时需要加下标 
            // let ul = document.querySelector('ul')//返回匹配该选择器的元素节点 获取时不需要加下标

            console.log(ul);

            //2.绑定点击事件

                btn.onclick=()=>{

                    //点击按钮添加li
                    //2.1创建li
                    let li = document.createElement('li');

                    //2.2给li设置内容
                    li.innerHTML='添加的内容';

                    //2.3 添加到ul中
                    ul[0].appendChild(li);

                    //控制台打印li1和li2 
                    console.log(li1);
                    console.log(li2);
                }

    </script>

获取li:

 添加新li时:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值