营销网站科技,电子商务书店网站设计实验,手工艺品网站建设,广州网站开发建设文章目录 jQuery基础1. 优势2. 版本3. 基本语法4. 选择器基本选择器层次选择器属性选择器过滤选择器基本过滤选择器可见性过滤选择器 注意事项 jQuery基础
jQuery 是一个功能强大且易于使用的 JavaScript 库#xff0c;它极大地简化了前端开发的工作。无论是 DOM 操作、事件处… 文章目录 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 的不同之处
需求说明
当用户点击页面中的按钮时将一个文本框中的文本变为大写并且改变背景颜色。!-- 使用原生 JavaScript --
style.uppercase {background-color: yellow;}
/style
bodyinput typetext idmyInput valuehello worldbutton idconvert转换为大写/buttonscriptdocument.getElementById(convert).addEventListener(click, function() {var inputElement document.getElementById(myInput);inputElement.value inputElement.value.toUpperCase();inputElement.classList.add(uppercase);});/script
/body!-- 使用原生 jQuery --
style.uppercase {background-color: yellow;}
/style
script srchttps://code.jquery.com/jquery-3.x.x.min.js/script
bodyinput typetext idmyInput valuehello worldbutton idconvert转换为大写/buttonscript$(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 srcjs/jquery-3.3.1.min.js typetext/javascript/script3. 基本语法
// 为页面加载事件绑定方法
$(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); // 设置dd标签中的内容显示出来});$(h1).css(color,blue); // 设置h1标签中的字体颜色为蓝色
})类选择器根据给定的class匹配元素
$(.price).css({background:#efefef,padding:5px});
// 设置class为price元素的背景颜色和内边距ID选择器根据给定的 id 匹配元素
$(#author).css(color,#083499);
// 设置 id 为 author 的元素的字体颜色并集选择器用来合并元素集合
$(.intro,dt,dd).css(color,#ff0000);
// 改变 class 为 intro,所有dt,dd颜色为纯红色全局选择器可以获取所有元素
$(*).css(font-weight,bold);
// 设置所有元素的字体加粗显示层次选择器
通过 DOM 元素之间的层次关系来获取元素
名称语法构成描述示例后代选择器ancestor descendant选取ancestor元素里的所有descendant后代元素$(“#menu span”)选取#menu下的span元素子选择器parentchild选取parent元素下的child子元素$(“#menuspan”)选取#menu的子元素span相邻元素选择器prevnext选取紧邻prev元素之后的next元素$(“h2dl”)选取紧邻h2元素之后的同辈元素dl同辈元素选择器prev~sibings选取prev元素之后的所有siblings元素$(“h2~dl”)选取h2元素之后所有的同辈元素dl
后代选择器用来获取元素的后代元素
$(.textRight p).css(color,red);
// 设置class为textRight元素中的所有p标签的字体全部为红色子选择器用来获取元素的子元素
$(.textRightp).css(color,red);
// 设置class为textRight元素中的子元素p标签的字体全部为红色相邻选择器用来选取紧邻目标元素的下一个元素 $(h1p).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根据是否包含某属性来选取元素
// a 标签带有 class 属性
$(#news a[class]).css(background,#c9cbcb);根据属性值获取元素
1根据属性的值来选取元素
// class 属性值为 hot
$(#news a[classhot]).css(background,#c9cbcb); 2指定选取不等于属性是某个特定值的元素
$(#news a[class!hot]).css(background,#c9cbcb);根据属性值包含特定的值获取元素
1指定属性值以指定值开头的元素
// a 标签 href 属性值以 www 开头
$(#news a[href^www]).css(background,#c9cbcb); 2指定属性值以指定值结尾的元素
// a 标签 href 属性值以 html 结尾
$(#news a[href$html]).css(background,#c9cbcb); 3指定属性值包含指定值的元素
// a 标签 href 属性值包含 k2 的元素
$(#news a[href*k2]).css(background,#c9cbcb);过滤选择器
通过特定的过滤规则来筛选出所需的元素
主要分类
基本过滤选择器
可见性过滤选择器
表单对象过滤选择器
内容过滤选择器、子元素过滤选择器……
基本过滤选择器
语法描述示例:first选取第一个元素$(“li:first”)选取所有li元素中的第一个li元素:last选取最后一个元素$(“li:last”)选取所有li元素中的最后一个li元素:not(selector)选取去除所有与给定选择器匹配的元素$(“li:not(.three)”)选取class不是three的元素:even选取索引是偶数的所有元素$(“li:even”)选取索引是偶数的所有li元素:odd选取索引是奇数的所有元素$(“li:odd”)选取索引是奇数的所有li元素:eq(index)选取索引等于index的元素$(“li:eq(1)”)选取索引等于1的li元素:gt(index)选取索引大于index的元素$(“li:gt(1)”)选取索引大于1的li元素:lt(index)选取索引小于index的元素$(“li:gt(1)”)选取索引小于1的li元素:header选取所有标题元素 如h1~h6$(“:header”)选取网页中所有标题元素:focus选取当前获取焦点的元素$(“:focus”)选取当前获取焦点的元素:animated选择所有动画$(“:animated”)选取当前所有动画元素
案例制作仿奥列表页面
div classcontainh2祝福冬奥/h2ulli 贝克汉姆衷心希望北京能够申办成功/lili 姚明北京申冬奥是个非常棒的机会加油/lili 张虹北京办冬奥大家的热情定超乎想象 /lili 肖恩怀特我爱北京支持北京申办冬奥会/lili 赵宏博北京申办冬奥会是再合适不过了/lili 你喜欢哪些冬季运动项目(点击进入调查页)/li/ul
/div$(.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);$(.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});可见性过滤选择器
通过元素显示状态来选取元素
语法描述示例:visible选取所有可见的元素$(“:visible”)选取所有可见的元素:hidden选取所有隐藏的元素$(“:hidden”)选取所有隐藏的元素
$(p:hidden).show();
$(p:visible).hide();注意事项
1特殊符号的转义
div idid#aaa/div
div idid[2]cc/div$(#id#a); $(#id\\#a);
$(#id[2]); $(#id\\[2\\]);2选择器的书写规范很严格多一个空格或少一个空格都会影响选择器的效果
// 带空格的jQuery选择器 选取class为“test”的元素内部的隐藏元素
var $t_a $(.test :hidden); // 不带空格的jQuery选择器 选取隐藏的class为“test”的元素
var $t_b $(.test:hidden);