jquery 判断是否有类名_JQuery 基础(一)

4290e8208c73f78f6b3ebac7c3c905eb.png
封面图片来源:沙沙野

内容概览

  1. jQuery 本质
  2. jQuery 中,提供一个入口函数
  3. jQuery 获取标签元素
  4. jQuery 过滤元素的方法
  5. jQuery 中选择器的关系操作
  6. jQuery操作元素的属性
  7. jQuery 操作元素的样式
  8. jQuery 的链式编程
  9. jQuery 的事件操作
  1. jQuery 本质上就是一个装满了 JS 函数的文件,因此引入 jQuery 还是使用 script 标签
<!DOCTYPE html>

​ 运行结果如下,按 F12,查看 Console 栏里打印的信息

7c09cd08c8dcb2042743f35937f4441c.png

2. 让 js 代码在页面加载完成以后执行,之前是用 window.onload 来完成 jQuery 中,也提供了一个页面加载函数,即入口函数

<!DOCTYPE html>

​ 运行结果如下,同时查看 Console 栏里打印的信息

b3267ed39ca8bf147b896a449905f610.png

3. jQuery 获取标签元素

  • jQuery 为了简化 js 获取元素的操作,参考了 CSS 选择器的规则
  • jQuery 还额外提供了一些 CSS 没有的选择器
  • jQuery 根据选择器设计了一套获取元素的方法

4. jQuery 常用选择器的写法

  • $("#test"); // 获取 id 为 test 的元素
  • $(".myClass"); // 获取所有 class 为 myClass 的元素
  • $("li"); // 获取所有的 li 元素
  • $("#ul1 li span"); // 获取 id 为 ul1 元素下的所有 li 下的所有的 span 元素
  • $("input[name=first]"); // 获取所有 name 为 first 的 input 元素
  • $("p, h1"); // 获取所有的 p 元素和 h1 元素
  • $(".list li:odd"); // 获取 class 为 list 的所有元素下所有下标(索引号)为奇数的 li
  • $(".list li:even"); // 获取 class 为 list 的所有元素下所有下标(索引号)为偶数的 li
  • $("input[name=fav]:checked"); // 获取 name 为 fav 的所有被选中状态的 input 元素,用于多选框

5. 使用 CSS 的选择器作为 $() 的参数,可以直接获取 html 元素,而且可以获取多个

  • $("#id") // id选择器
  • $(".class") // 类选择器
  • $("ul li") // 层级选择器
  • $("h1, div") // 群组选择器

6. 不管 jQuery 使用选择器是否获取到元素,都会返回类似数组的 jQuery 对象,目的有两个:

  • 方便开发者获取元素以后直接继续使用jQuery的其他操作方法
  • 防止报错

7. 可以在获取元素以后,直接使用 .html() 获取元素的内容

8. 可以在获取元素以后,直接使用 .css() 操作元素的属性

<!DOCTYPE html>

​ 运行结果:

ffd60767d8938d2de7c2359d5a1b0d8e.png

db22f5dc1531f6b0deae1dc90e9e5ee7.png
<!DOCTYPE html>

​ 运行结果:

502285bb5e4fbb754239c655db924aea.png

9. jQuery 提供了以下过滤元素的方法

  • $("div").has("p"); // 选择包含 p 元素的所有 div 元素
  • $("div").not(".myClass") // 选择 class 不等于 myClass 的所有 div 元素
  • $("div").eq(5); // 选择所有 div 元素中下标为 5 的 div 元素(因此可以用在循环中)
<!DOCTYPE html>

​ 运行结果:

b539de53d97df49b465ee05c0527064e.png

10. 选择器的关系操作: jQuery 中提供了允许通过标签之间的关系来选中目标的其他关系元素,通过指定元素获取其所有子元素等。在 jQuery 中除了可以使用选择器来获取元素以外,还可以利用标签之间的嵌套[父子]关系或者并列[兄弟]关系来操作元素

    • $('#box').prev(); // 选择 #box 元素前面紧挨的同辈元素
    • $('#box').prevAll(); // 选择 #box 元素之前所有的同辈元素
    • $('#box').next(); // 选择 #box 元素后面紧挨的同辈元素
    • $('#box').nextAll(); // 选择 #box 元素后面所有的同辈元素
    • $('#box').parent(); // 选择 #box 元素的父元素
    • $('#box').children(); // 选择 #box 元素的所有子元素
    • $('#box').siblings(); // 选择 #box 的元素的同级元素
    • $('#box').find('.myClass'); // 选择 #box 的元素内的 class 等于 myClass 的子孙元素
<!DOCTYPE html>

​ 运行结果:

c33ddf72b518edc2db61670c378b6f0d.png
<!DOCTYPE html>

​ 运行结果:

8c68619f4856f811472804728c7e0a89.png

11. jQuery操作元素的属性

    • $("#img1").attr("src"); // 1.6 版本以下使用这个,1.6 以上操作表单的时候,需要换成 prop
    • $("#img1").prop("src");
    • $("#fav").prop("checked"); // 用于单选框或者复选框

12. 设置元素的属性值

    • $('#img1').attr("src","test.jpg"); // 1.6 版本以下使用这个
    • $('#img1').prop("src","test.jpg");
    • $('#img1').prop({"src": "test.jpg", "alt": "Test Image" });

13. jQuery操作元素的属性总结

    • 获取属性,需要传递一个属性名称参数传递到 prop 方法中,否则 jQuery 不清楚我们要获取哪个属性
    • 设置如果是设置一个属性,可以给 prop 传递两个参数:prop("属性名","属性值");
    • 设置多个属性,只需要传递一个 js 对象参数:prop({"属性1":"属性值1","属性2":"属性值2",.....});
<!DOCTYPE html>

​ 运行结果:

8a427af0b1d5b095d83ec580b327bc97.png
<!DOCTYPE html>

​ 运行结果:

0fc042f534398195b482b7b2f926786b.png
<!DOCTYPE html>

​ 运行结果如下,点击全选、反选按钮都有反应

6acd51160a188fd7b4d32ddd00ac4c42.png

14. jQuery 操作元素的样式

    • 获取元素的 css 样式
    • $("div").css("width");
    • 设置元素的 css 样式
    • $("div").css("width","30px");
    • $("div").css("height","30px").css("background","red");
    • $("div").css({"font-size":"30px","color":"red"}); // 同时设置多个样式属性
    • jQuery 操作样式类名改变元素的样式
    • $("#div1").addClass("divClass2") // 为 id 为 div1 的对象追加样式 divClass2
    • $("#div1").removeClass("divClass") // 移除 id 为 div1 的对象的 class 名为 divClass 的样式
    • $("#div1").removeClass("divClass divClass2") // 移除多个样式
    • $("#div1").toggleClass("anotherClass") // 重复切换 anotherClass 样式

15. jQuery 操作元素的样式总结

    • jQuery 提供了 css 方法和 addClass 等给我们操作元素的样式属性
    • css 的使用
    • 获取元素的外观样式 css("样式名称");
    • 设置元素的外观样式 css("样式名称","样式值"); css({"样式名称1":"样式1的值","样式名称2":"样式2的值",...})
    • 添加样式类名 addClass("样式类名1 样式类名2");
    • 移除样式类名 removeClass("样式类名1 样式类名2");
    • 切换样式类名 toggleClass("样式类名");
    • css() 不仅可以获取行内样式,还可以获取嵌入式或外链式的样式
<!DOCTYPE html>

​ 运行结果如下,点击"开灯"按钮,背景颜色会变化

e099638774a532876ba99b07a0ca1dbe.png

78128b48615f52191f9a272bce9e5246.png

16. jQuery 的链式编程

    • 在 jQuery 中,如果一直对同一个元素或元素的其他关系元素(兄弟元素,父子元素)进行操作,那么可以使用 .语法(点语法),一直写下去
    • $("#box").css("background", "pink").css("font-size":"29px");
    • $("#box").siblings().css("background", ""); 可以写成: $("#box").css("background", "pink").siblings().css("background", "red");
    • 链式编程的实现原理
    • jQuery 可以让我们开发者一直使用点语法调用自身方法的原理。主要原因是jQuery 内部利用了 js 的对象来实现,在 Python中,我们知道 self 在方法内部表示当前对象自身;同理,js 的方法中也有一个this表示当前对象
    • 总结:
    • 实现链式编程的核心,是对象中的每一个方法都会返回当前对象
    • 在方法中,js 提供一个 this 的关键字,表示当前对象
<!DOCTYPE html>

​ 运行结果:

65e10dc05f8a9b811e6b9d90dc423bd7.png

17. jQuery 的事件操作

<!DOCTYPE html>

​ 运行结果如下,注意:将鼠标移到 "商品列表" ,发现会自动下拉一个菜单

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值