JQuery 教程

jQuery 选择器:基本选择器

本章将介绍 jQuery 中最核心的基本选择器,包括如下五种选择器:

  • #id:ID选择器

  • element:元素/标签选择器

  • .class:类选择器

  • *:通配符选择器

  • selector1,selector2,selectorN:并集选择器,一次写多个选择器

下面将逐一详细介绍每种选择器。

基本选择器

#id 选择器(ID 选择器)

根据元素的 id 属性值,选中页面中唯一的那个元素(HTML 规范要求 id 全局唯一)。

注意,ID选择器的查找速度最快(基于原生 document.getElementById()),优先用于精准选中单个元素。

语法:

$("#id名称")

注意事项:

  • 不要给 id 加空格、特殊字符(仅允许字母、数字、下划线、短横线,且不能以数字开头);

  • 避免重复 id,否则会导致选择器行为不可控;

  • 语法中 # 必须紧跟 id 名称,不能有空格(如 $("# content") 会选中 id 包含空格的元素,而非 id 为 content 的元素)。

element 选择器(元素/标签选择器)

用于选中页面中所有指定标签的元素,如 $("div") 选中所有 div,$("p") 选中所有 p。

注意,该选择器基于原生 document.getElementsByTagName(),适合批量选中同类型标签。

语法:

$("标签名")

注意事项:

  • 标签名小写即可(如 $("P") 和 $("p") 效果一致),符合 HTML 规范;

  • 若页面无该标签,返回空的 jQuery 对象(不会报错),如 $("h5").length 输出 0;

  • 适合批量操作同类型元素,但若只需操作单个元素,优先用 ID 选择器(效率更高);

.class 选择器(类选择器)

用于选中页面中所有拥有该类名的元素,一个元素可拥有多个类,只要包含目标类名就会被选中。

注意,该选择器基于原生 document.getElementsByClassName(),适合批量选中不同标签但同样式 / 行为的元素。

语法:

$(".类名")

注意事项:

  • 类名不能以数字开头,多个类名用空格分隔(如 class="box highlight");

  • 语法中 . 必须紧跟类名,不能有空格(如 $(". box") 会选中类名包含空格的元素,而非类为 box 的元素);

  • 一个元素可被多个类选择器匹配(如同时匹配 .box 和 .highlight);

* 选择器(通配符选择器)

用于选中页面中所有的 DOM 元素(包括 html、body、div、p 等所有标签)。

该选择器范围最广,但效率最低(遍历所有元素),尽量少用。

语法:

$("*")

注意事项:

  • 全局使用 $("*") 会严重影响性能(遍历所有元素),仅在特殊场景下使用;

  • 建议结合上下文使用(如 $("div *") 只选 div 下的所有子元素),缩小选择范围;

  • 不要用于大规模样式修改,优先用更精准的选择器。

selector1,selector2,selectorN 选择器(并集选择器)

用于同时选中多个不同选择器匹配的元素(相当于“或”的逻辑,只要匹配其中一个选择器就会被选中)。

该选择器灵活组合多种选择器,批量操作不同类型的元素。

语法:

$("选择器1, 选择器2, 选择器N")

注意事项:

  • 多个选择器之间用英文逗号分隔,逗号后可加空格(如 $("#title, .content") 和 $("#title,.content") 效果一致);

  • 并集选择器的效率取决于其中最慢的那个选择器(如包含 * 则效率低);

  • 可任意组合基本选择器(ID、类、标签、通配符),满足多元素批量操作需求。

演示示例

下面通过一个示例演示各个选择器的含义,通过为选中的元素添加样式,直观查看个基本选择器的效果。

示例:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JQeury 教程:选择器</title>
    <script type="text/javascript" src="https://www.hxstrive.com/cdn/libs/jquery/3.7.1/jquery.min.js"></script>
    <style>
        body > div { margin:20px; }
        button { background: #EEE !important; border: 1px solid #ccc !important;
            min-width: 40px; padding: 5px; margin: 5px; cursor: pointer; }
        sup {color: red; font-size: 12px;}
        ul li { margin: 3px 0;}

        /* 效果样式 */
        .myClass {
            box-shadow: inset 0 0 5px red;
        }
    </style>
</head>
<body>

    <!-- 注意:下面的 < 和 > 是对 < 和 > 的实体编码 -->
    <div class="app">
        <h3>最基本的选择器,也是最常用的选择器,必须掌握</h3>
        <div id="idSelector">div id="idSelector" </div>
        <p class="classSelector classSelector2">p class="classSelector classSelector2" </p>
        <p>p</p>
    </div>

    <div>
        <!-- * 选择所有元素 -->
        <button type="button" onclick="
                reset();
                // 选择所有的元素,然后添加边框
                $('*').addClass('myClass');
                // 仅选择 class='app' 下面的所有元素
                // $('*', $('.app')).css('border', 'solid 2px red');
            ">* 所有元素</button>

        <!-- #id 根据ID选择 -->
        <button type="button" onclick="
                reset();
                // 选择ID为idSelector的元素,然后添加边框
                $('#idSelector').addClass('myClass');
            ">#idSelector</button>
       
        <!-- .class 根据类名选择 -->
        <button type="button" onclick="
                reset();
                // 选择class为classSelector2的元素,然后添加边框
                $('.classSelector2').addClass('myClass');
            ">.classSelector2</button>
       
        <!-- element 根据标签名称选择 -->
        <button type="button" onclick="
                reset();
                // 选择标签为p的元素,然后添加边框
                $('p').addClass('myClass');
            ">p</button>
       
        <!-- selector1,selector2,selectorN 选择多个元素 -->
        <button type="button" onclick="
                reset();
                // 选择多个元素,然后添加边框
                $('#idSelector,.classSelector').addClass('myClass');
            ">#idSelector,.classSelector</button>
    </div>

    <script>
        function reset() {
            $('*').removeClass('myClass');
        }
    </script>
   
</body>
</html>

看看效果👉自己动手试一试 »

运行示例,效果如下图:

image.png

上图是点击“#idSelector,.classSelector”按钮后的效果,选中了一个 <div> 和 <p> 标签,即添加红色边框的元素。

更多关于 jQuery 的知识请阅读后续教程。

  

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号