【jQuery】 jQuery基础及选择器介绍(基本选择器 层次选择器 属性选择器 过滤选择器)

18,897次阅读
没有评论

共计 5653 个字符,预计需要花费 15 分钟才能阅读完成。

文章目录

  • jQuery 基础
    • 1. 优势
    • 2. 版本
    • 3. 基本语法
    • 4. 选择器
      • 基本选择器
      • 层次选择器
      • 属性选择器
      • 过滤选择器
        • 基本过滤选择器
        • 可见性过滤选择器
      • 注意事项

jQuery 基础

jQuery 是一个功能强大且易于使用的 JavaScript 库,它极大地简化了前端开发的工作。无论是 DOM 操作、事件处理还是 Ajax 交互,jQuery 都能提供简洁高效的解决方案。尽管近年来随着 ES6+ 以及框架如 React、Vue 和 Angular 的兴起,jQuery 的使用频率有所下降,但对于许多项目来说,尤其是那些不需要复杂状态管理和虚拟 DOM 更新的项目,jQuery 仍然是一个非常实用的选择。

设计思想:write less, do more

  • jQuery 官网
  • jQuery 中文 API 手册

1. 优势

通过一个简单的例子来对比原生 JavaScript 和使用 jQuery 的不同之处

需求说明:当用户点击页面中的按钮时,将一个文本框中的文本变为大写,并且改变背景颜色。

style>
    .uppercase {background-color: yellow;}
style>
body>
    input type="text" id="myInput" value="hello world">
    button id="convert">转换为大写button>

    script>
        document.getElementById('convert').addEventListener('click', function() {
            var inputElement = document.getElementById('myInput');
            inputElement.value = inputElement.value.toUpperCase();
            inputElement.classList.add('uppercase');
        });
    script>
body>

style>
    .uppercase {background-color: yellow;}
style>
script src="https://code.jquery.com/jquery-3.x.x.min.js">script>
body>
    input type="text" id="myInput" value="hello world">
    button id="convert">转换为大写button>

    script>
        $(document).ready(function() {
            $("#convert").click(function() {
                var inputElement = $("#myInput");
                inputElement.val(inputElement.val().toUpperCase());
                inputElement.addClass('uppercase');
            });
        });
    script>
body>

代码量

  • 原生 JavaScript:需要导入 DOM 元素,添加事件监听器,并且手动改变文本和样式。
  • jQuery:使用链式调用和更简洁的选择器,使得代码更短更清晰。

语法简洁性

  • 原生 JavaScript:语法相对繁琐,需要显式地获取元素引用,绑定事件处理函数。
  • jQuery:语法更为简洁,使用 $ 符号和链式调用可以让代码更加紧凑。

易读性和可维护性

  • 原生 JavaScript:虽然现代 JavaScript 已经非常强大,但是对于一些简单的 DOM 操作,代码仍然显得有些冗长。
  • jQuery:代码更容易阅读,维护起来也更方便

JavaScript 转 jQuery $(js 对象);

jQuery 转 JavaScript $(选择器).get(0); / $(选择器)[0]

2. 版本

jQuery 库分开发版和发布版

名称 大小 说明
jquery-3. 版本号.js(开发版) 约 286KB 完整无压缩版本,主要用于测试、学习和开发
jquery-3. 版本号.min.js(发布版) 约 94.8KB 经过工具压缩或经过服务器开启 Gzip 压缩,主要应用于发布的产品和项目
script src="js/jquery-3.3.1.min.js" type="text/javascript">script>

3. 基本语法


$(document).ready(function() {
    alert("我欲奔赴沙场征战 jQuery,势必攻克之!");
});

$(document).ready()window.onload 类似,但也有区别

window.onload $(document).ready()
执行时机 必须等待网页中所有的内容加载完毕后(包括图片、flash、视频等)才能执行 网页中所有 DOM 文档结构绘制完毕后即刻执行,可能与 DOM 元素关联的内容(图片、flash、视频等)并没有加载完
编写个数 同一页面不能同时编写多个 同一页面能同时编写多个
简化写法 $(function(){
// 执行代码
});

4. 选择器

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作

基础语法是:$(selector).action()

基本选择器

标签选择器、类选择器、ID 选择器、并集选择器和全局选择器

名称 语法构成 描述 示例
标签选择器 element 根据给定的标签名匹配元素 $(“h2”)选取所有 h2 元素
类选择器 .class 根据给定的 class 匹配元素 $(“.title”)选取所有 class 为 title 的元素
ID 选择器 #id 根据给定的 id 匹配元素 $(“#title”)选取 id 为 title 的元素
并集选择器 selector1,selector2,…,selectorN 将每一个选择器匹配的元素合并后一起返回 $(“div,p,.title”)选取所有 div、p 和拥有 class 为 title 的元素
全局选择器 * 匹配所有元素 $(“*”)选取所有元素

标签选择器 根据给定的标签名匹配元素

$(document).ready(function(){
    $("dt").click(function(){
        $("dd").css("display","block"); 
    });
    $("h1").css("color","blue"); 
})

类选择器 根据给定的 class 匹配元素

$(".price").css({"background":"#efefef","padding":"5px"});

ID 选择器 根据给定的 id 匹配元素

$("#author").css("color","#083499");

并集选择器 用来合并元素集合

$(".intro,dt,dd").css("color","#ff0000");

全局选择器 可以获取所有元素

$("*").css("font-weight","bold");

层次选择器

通过 DOM 元素之间的层次关系来获取元素

名称 语法构成 描述 示例
后代选择器 ancestor descendant 选取 ancestor 元素里的所有 descendant(后代)元素 $(“#menu span”)选取 #menu 下的 元素
子选择器 parent>child 选取 parent 元素下的 child(子)元素 $(“#menu>span”)选取 #menu 的子元素
相邻元素选择器 prev+next 选取紧邻 prev 元素之后的 next 元素 $(“h2+dl”)选取紧邻

元素之后的同辈元素

同辈元素选择器 prev~sibings 选取 prev 元素之后的所有 siblings 元素 $(“h2~dl”)选取

元素之后所有的同辈元素

后代选择器 用来获取元素的后代元素

$(".textRight p").css("color","red");

子选择器 用来获取元素的子元素

$(".textRight>p").css("color","red");

相邻选择器 用来选取紧邻目标元素的下一个元素

 $("h1+p").css("text-decoration","underline"); 

同辈选择器 用来选取目标元素之后的所有同辈元素

$("h1~p").css("text-decoration","underline");

属性选择器

通过 HTML 元素的属性来选择元素

语法构成 描述 示例
[attribute^=value] 选取给定属性是以某些特定值开始的元素 $(“[href^=‘en’]”)选取 href 属性值以 en 开头的元素
[attribute$=value] 选取给定属性是以某些特定值结尾的元素

(

[

h

r

e

f

(“[href

([href=‘.jpg’]”)选取 href 属性值以.jpg 结尾的元素

[attribute*=value] 选取给定属性是以包含某些值的元素 $(“[href*=‘txt’]”)选取 href 属性值中含有 txt 的元素

根据属性名获取元素

​ 1)根据是否包含某属性来选取元素


$("#news a[class]").css("background","#c9cbcb");

根据属性值获取元素

​ 1)根据属性的值来选取元素


$("#news a[class='hot']").css("background","#c9cbcb");

​ 2)指定选取不等于属性是某个特定值的元素

$("#news a[class!='hot']").css("background","#c9cbcb");

根据属性值包含特定的值获取元素

​ 1)指定属性值以指定值开头的元素


$("#news a[href^='www']").css("background","#c9cbcb");

​ 2)指定属性值以指定值结尾的元素


$("#news a[href$='html']").css("background","#c9cbcb");

​ 3)指定属性值包含指定值的元素


$("#news a[href*='k2']").css("background","#c9cbcb");

过滤选择器

通过特定的过滤规则来筛选出所需的元素

主要分类

​ 基本过滤选择器

​ 可见性过滤选择器

​ 表单对象过滤选择器

​ 内容过滤选择器、子元素过滤选择器……

基本过滤选择器
语法 描述 示例
:first 选取第一个元素 $(“li:first”)选取所有

  • 元素中的第一个
  • 元素
  • :last 选取最后一个元素 $(“li:last”)选取所有

  • 元素中的最后一个
  • 元素
  • :not(selector) 选取去除所有与给定选择器匹配的元素 $(“li:not(.three)”)选取 class 不是 three 的元素
    :even 选取索引是偶数的所有元素 $(“li:even”)选取索引是偶数的所有

  • 元素
  • :odd 选取索引是奇数的所有元素 $(“li:odd”)选取索引是奇数的所有

  • 元素
  • :eq(index) 选取索引等于 index 的元素 $(“li:eq(1)”)选取索引等于 1 的

  • 元素
  • :gt(index) 选取索引大于 index 的元素 $(“li:gt(1)”)选取索引大于 1 的

  • 元素
  • :lt(index) 选取索引小于 index 的元素 $(“li:gt(1)”)选取索引小于 1 的

  • 元素
  • :header 选取所有标题元素 如 h1~h6 $(“:header”)选取网页中所有标题元素
    :focus 选取当前获取焦点的元素 $(“:focus”)选取当前获取焦点的元素
    :animated 选择所有动画 $(“:animated”)选取当前所有动画元素

    案例:制作仿奥列表页面

    div class="contain">
        h2>祝福冬奥h2>
        ul>
            li> 贝克汉姆:衷心希望北京能够申办成功!li>
            li> 姚明:北京申冬奥是个非常棒的机会!加油!li>
            li> 张虹:北京办冬奥,大家的热情定超乎想象!li>
            li> 肖恩怀特:我爱北京,支持北京申办冬奥会!li>
            li> 赵宏博:北京申办冬奥会是再合适不过了!li>
            li> 你喜欢哪些冬季运动项目?(点击进入调查页)li>
        ul>
    div>
    

    【jQuery】jQuery 基础及选择器介绍(基本选择器 层次选择器 属性选择器 过滤选择器)

    $(".contain:header").css({"background":"#2a65ba","color":"#ffffff"});
    $(".contain li:first").css({"font-size":"16px","color":"#e90202"});
    $(".contain li:last").css("border","none");
    $(".contain li:even").css("background","#f0f0f0");
    $(".contain li:odd").css("background","#cccccc");
    

    【jQuery】jQuery 基础及选择器介绍(基本选择器 层次选择器 属性选择器 过滤选择器)

    $(".contain:header").css({"background":"#2a65ba","color":"#ffffff"});
    $(".contain li:first").css({"font-size":"16px","color":"#e90202"});
    $(".contain li:last").css("border","none");
    $(".contain li:lt(2)").css({"color":"#708b02"});
    $(".contain li:gt(3)").css({"color":"#b66302"});
    

    【jQuery】jQuery 基础及选择器介绍(基本选择器 层次选择器 属性选择器 过滤选择器)

    可见性过滤选择器

    通过元素显示状态来选取元素

    语法 描述 示例
    :visible 选取所有可见的元素 $(“:visible”)选取所有可见的元素
    :hidden 选取所有隐藏的元素 $(“:hidden”)选取所有隐藏的元素
    $("p:hidden").show();
    $("p:visible").hide();
    

    注意事项

    1)特殊符号的转义

    div id="id#a">aadiv>
    div id="id[2]">ccdiv>
    
    $("#id#a");   =====>  $("#id#a");
    $("#id[2]");  =====>  $("#id[2]");
    

    2)选择器的书写规范很严格,多一个空格或少一个空格,都会影响选择器的效果

    
    var $t_a = $(".test :hidden"); 
    
    
    var $t_b = $(".test:hidden");  
    

    原文地址: 【jQuery】jQuery 基础及选择器介绍(基本选择器 层次选择器 属性选择器 过滤选择器)

      正文完
       0
      Yojack
      版权声明:本篇文章由 Yojack 于2024-10-23发表,共计5653字。
      转载说明:
      1 本网站名称:优杰开发笔记
      2 本站永久网址:https://yojack.cn
      3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
      4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5 本站所有内容均可转载及分享, 但请注明出处
      6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
      7 站长邮箱:laylwenl@gmail.com
      评论(没有评论)