getElementsByClassName 和querySelector简单区别

getElementsByClassName 和querySelector简单区别

getElementsByClassName

  • (1)返回一个包含了所有指定类名的子元素的类数组对象,返回对象是动态的NodeList。
    (2)getElementsByClassName()是HTML5 新增的DOM API(IE8以下不支持)
    (3) 对于现代浏览器开发,还可以使用querySelector()和querySelectorAll()。他们的功能更加强大。
getElementsByClassName()是HTML5的DOM API。
document.getElementsByClassName("box"); //取得DOM中所有class = "box"的元素

querySelectorAll

  • 1)返回与指定的选择器组匹配的文档中的元素列表,返回对象是静态的NodeList。
    2)querySelector()和querySelectorAll()是新标准的Selectors
    API(选择符API)。IE8+、FF3.5+、Safari 3.1+、Chrome、Opera 10+支持。
    3)querySelector()接受一个css选择器作为参数,然后返回DOM中匹配的第一个元素
    4) querySelectorAll()接受一个css选择器作为参数,然后返回DOM中匹配的元素的集合数组
document.querySelector("#box") // 取得DOM中第一个id= “box”的元素
document.querySelector(".box") // 取得DOM中第一个class= “box”的元素

练习时碰到的问题(正确写法):

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box {
            position: relative;
            width: 74px;
            height: 88px;
            border: 1px solid #ccc;
            margin: 100px auto;
            font-size: 12px;
            text-align: center;
            color: #f40;
            /* display: block; */
        }
        
        .box img {
            width: 60px;
            margin-top: 5px;
        }
        
        .close-btn {
            position: absolute;
            top: -1px;
            left: -16px;
            width: 14px;
            height: 14px;
            border: 1px solid #ccc;
            line-height: 14px;
            font-family: Arial, Helvetica, sans-serif;
            cursor: pointer;
        }
    </style>
</head>

<body>
    <div class="box">
        淘宝二维码
        <img src="images/tao.png" alt="">
        <i class="close-btn">×</i>
    </div>
    <script>
        // 1. 获取元素 
        var btn = document.querySelector('.close-btn');
        var box = document.querySelector('.box');
        //下面是错误的写法
        //var btn=document.getElementsByClassName('close-btn');
        //var box=document.getElementsByClassName('box');
        // 2.注册事件 程序处理
        btn.onclick = function() {
            box.style.display = 'none';
        }
    </script>
</body>
</html>

测试错在哪
在这里插入图片描述
测试代码后台打印可以看出此例子不能使用getElementsByClassName()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值