目录
一, jQuery 简介
1. 介绍
2. jQuery 对象
二, 基础语法
1. 选择器(查找标签)
1.1 基本选择器
1.2 层级选择器(后代选择器)
1.3 属性选择器
2. 筛选器
2.1 基本筛选器
2.2 表单筛选器
2.3 筛选器方法
3. 操作标签
3.1 类操作
3.2 样式操作
3.3 位置操作
3.4 尺寸
3.5 文本操作
3.6 属性操作
3.7 文档处理
4. 事件
4.1 常用事件
4.2 事件绑定
4.3 移除事件
4.4 阻止后续事件执行
4.5 阻止冒泡事件
4.6 页面载入
4.7 事件委托
一, jQuery 简介
1. 介绍
jQuery 是一个轻量级的, 兼容多浏览器的 JavaScript 库.
jQuery 使用户能够更方便地处理 html Document,Events, 实现动画效果, 方便地进行 Ajax 交互, 能够极大地简化 JavaScript 编程. 它的宗旨就是:"Write less, do more."
2. jQuery 对象
jQuery 对象就是通过 jQuery 包装 DOM 对象后产生的对象.
jQuery 对象是 jQuery 独有的.
如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: 例如 $("#i1").HTML().
$("#i1").HTML()的意思是: 获取 id 值为 i1 的元素的 HTML 代码. 其中 HTML()是 jQuery 里的方法. 相当于: document.getElementById("i1").innerHTML;
虽然 jQuery 对象是包装 DOM 对象后产生的, 但是 jQuery 对象无法使用 DOM 对象的任何方法, 同理 DOM 对象也没不能使用 jQuery 里的方法.
一个约定, 我们在声明一个 jQuery 对象变量的时候在变量名前面加上 $:
var $variable = jQuery 对像
var variable = DOM 对象
$variable[0] //jQuery 对象转成 DOM 对象
拿上面那个例子举例, jQuery 对象和 DOM 对象的使用:
- $("#i1").HTML();//jQuery 对象可以使用 jQuery 的方法
- $("#i1")[0].innerHTML; // DOM 对象使用 DOM 的方法
二, 基础语法
$(selector).action()
1. 选择器(查找标签)
1.1 基本选择器
id 选择器:
$('#d1')
标签选择器
$('div')
class 选择器
$('.c1')
配合使用
$('div.c1') // 找到继承 c1 类的 div 标签
所有元素选择器
$('*')
组合选择器
$('#d1, .c1, div')
1.2 层级选择器(后代选择器)
- $("x y");// x 的所有后代 y(子子孙孙)
- $("x> y");// x 的所有儿子 y(儿子)
- $("x + y")// 找到所有紧挨在 x 后面的 y
- $("x ~ y")// x 之后所有的兄弟 y
1.3 属性选择器
- [attribute]
- [attribute='value'] // 属性等于
- [attribute!='value'] // 属性不等于
2. 筛选器
用来在选择标签时进行进一步的筛选.
2.1 基本筛选器
- :first // 第一个
- :last // 最后一个
- :eq(index) // 索引等于 index 的那个元素
- :even // 匹配所有索引值为偶数的元素, 从 0 开始计数
- :odd // 匹配所有索引值为奇数的元素, 从 0 开始计数
- :gt(index) // 匹配所有大于给定索引值的元素
- :lt(index) // 匹配所有小于给定索引值的元素
- :not(元素选择器) // 移除所有满足 not 条件的标签
- :has(元素选择器) // 选取所有包含一个或多个标签在其内的标签(指的是从后代元素找)
- // 举例:
- $('div:has("d1")') // 查找含有 id=d1 属性的 div 标签
2.2 表单筛选器
- // 筛选 input 标签中, 不同 type 类型的 input 标签
- :text // [type = 'text']
- :password
- :file
- :radio
- :checkbox
- :submit
- :reset
- :button // :button 不仅可以选中 type='button'的 input 标签, 也可以直接选中 button 标签, 而 $('button')只能选中 button 标签.
- :enabled
- :disabled
- :checked // checked 会将 selected 也选择到
- :selected // 而 selected 只能选择 selected 标签
- $("#id").next()
- $("#id").nextAll()
- $("#id").nextUntil("#i2") // 不包含 #i2 标签本身
- $("#id").prev()
- $("#id").prevAll() // 同级别的
- $("#id").prevUntil("#i2")
- $("#id").parent()
- $("#id").parents() // 查找当前元素的所有的父辈元素
- $("#id").parentsUntil() // 查找当前元素的所有的父辈元素, 直到遇到匹配的那个元素为止.
- $("#id").children(); // 儿子们
- $("#id").siblings(); // 兄弟们
- .first() // 获取匹配的第一个元素
- .last() // 获取匹配的最后一个元素
- .not() // 从匹配元素的集合中删除与指定表达式匹配的元素
- .has() // 保留包含特定后代的元素, 去掉那些不含有指定后代的元素.
- .eq() // 索引值等于指定值的元素
- $('div span').first() == $('div span:first')
- addClass(); // 添加指定的 CSS 类名.
- removeClass(); // 移除指定的 CSS 类名.
- hasClass(); // 判断样式存不存在 返回 true/false
- toggleClass(); // 如果有就移除, 如果没有就添加.
- $('div').addclass('red_bg') // 给 div 标签添加'red_bg'类
- offset()// 获取匹配元素在当前窗口的相对偏移或设置元素位置
- position()// 获取匹配元素相对父元素的偏移
- scrollTop()// 获取匹配元素相对滚动条顶部的偏移
- scrollLeft()// 获取匹配元素相对滚动条左侧的偏移
- height()
- width()
- innerHeight()
- innerWidth()
- outerHeight()
- outerWidth()
- HTML() // 取得第一个匹配元素的 HTML 内容
- HTML(val) // 设置所有匹配元素的 HTML 内容
- text() // 取得所有匹配元素的内容
- text(val) // 设置所有匹配元素的内容
- val() // 取得第一个匹配元素的当前值
- val(val) // 设置所有匹配元素的值
- val([val1, val2]) // 设置多选的 checkbox, 多选 select 的值
- $("[name='hobby']").val(['basketball', 'football']);
- $("#s1").val(["1", "2"])
- <label for="c1">
- 女
- </label>
- <input name="gender" id="c1" type="radio" value="0">
- <label for="c2">
- 男
- </label>
- <input name="gender" id="c2" type="radio" value="1">
- attr(attrName) // 返回第一个匹配元素的属性值
- attr(attrName, attrValue) // 为所有匹配元素设置一个属性值
- attr({
- k1: v1, k2:v2
- }) // 为所有匹配元素设置多个属性值
- removeAttr() // 从每一个匹配的元素中删除一个属性
- prop() // 获取属性
- removeProp() // 移除由 prop() 方法设置的属性. 不要使用该方法来移除诸如 style,id 或 checked 之类的 HTML 属性.
- <input type="checkbox" value="1">
- <input type="radio" value="2">
- <script>
- $(":checkbox[value='1']").prop("checked", true);
- $(":radio[value='2']").prop("checked", true);
- </script>
- $("#i1").attr("checked") // undefined
- $("#i1").prop("checked") // false
- $("#i1").attr("checked") // checked
- $("#i1").prop("checked") // true
- $("#i1").attr("me") // "自定义属性"
- $("#i1").prop("me") // undefined
- $(A).append(B) // 把 B 追加到 A
- $(A).appendTo(B) // 把 A 追加到 B
- $(A).prepend(B) // 把 B 前置到 A
- $(A).prependTo(B) // 把 A 前置到 B
- $(A).after(B) // 把 B 放到 A 的后面
- $(A).insertAfter(B) // 把 A 放到 B 的后面
- $(A).before(B) // 把 B 放到 A 的前面
- $(A).insertBefore(B) // 把 A 放到 B 的前面
- remove() // 从 DOM 中删除所有匹配的元素.
- empty() // 删除匹配的元素集合中所有的子节点.
- replaceWith()
- replaceAll()
- <!DOCTYPE HTML>
- <HTML lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="x-ua-compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>
- 克隆
- </title>
- <style>
- #b1 { background-color: deeppink; padding: 5px; color: white; margin:
- 5px; } #b2 { background-color: dodgerblue; padding: 5px; color: white;
- margin: 5px; }
- </style>
- </head>
- <body>
- <button id="b1">
- 屠龙宝刀, 点击就送
- </button>
- <hr>
- <button id="b2">
- 屠龙宝刀, 点击就送
- </button>
- <script src="jquery-3.2.1.min.js">
- </script>
- <script>
- // clone 方法不加参数 true, 克隆标签但不克隆标签带的事件
- $("#b1").on("click",
- function() {
- $(this).clone().insertAfter(this);
- });
- // clone 方法加参数 true, 克隆标签并且克隆标签带的事件
- $("#b2").on("click",
- function() {
- $(this).clone(true).insertAfter(this);
- });
- </script>
- </body>
- </HTML>
- click(function(){
- ...
- })
- hover(function(){
- ...
- })
- blur(function(){
- ...
- })
- focus(function(){
- ...
- })
- change(function(){
- ...
- })
- keyup(function(){
- ...
- })
- <!DOCTYPE HTML>
- <HTML lang="en">
- <head>
- <meta charset="UTF-8">
- <title>
- Title
- </title>
- </head>
- <body>
- <p>
- 苍茫的天涯是我的哎, 绵绵的青山脚下一片海!
- </p>
- <script src="jQuery-3.3.1.js">
- </script>
- <script>
- $('p').hover( // 鼠标悬浮上去的时候触发. 如果你只写了一个函数, 那么悬浮和移开都触发这个
- function() {
- alert('来啦, 老弟')
- },
- function() {
- alert('慢走哦~')
- })
- </script>
- </body>
- </HTML>
- // 方法 1
- .on(events [, selector ],function(){})
- // 方法 2
- obj.onclick = function(){
- ...
- }
- // 方法 1
- return false; // 常见阻止表单提交等
- // 方法 2
- e.preventDefault();
- <!DOCTYPE HTML>
- <HTML lang="en">
- <head>
- <meta charset="UTF-8">
- <title>
- 阻止默认事件
- </title>
- </head>
- <body>
- <form action="">
- <button id="b1">
- 点我
- </button>
- </form>
- <script src="jquery-3.3.1.min.js">
- </script>
- <script>
- $("#b1").click(function(e) {
- alert(123);
- // 方法 1
- //return false;
- // 方法 2
- e.preventDefault();
- });
- </script>
- </body>
- </HTML>
- <!DOCTYPE HTML>
- <HTML lang="en">
- <head>
- <meta charset="UTF-8">
- <title>
- 阻止事件冒泡
- </title>
- </head>
- <body>
- <div>
- <p>
- <span>
- 点我
- </span>
- </p>
- </div>
- <script src="jquery-3.3.1.min.js">
- </script>
- <script>
- $("span").click(function(e) {
- alert("span");
- e.stopPropagation();
- });
- $("p").click(function() {
- alert("p");
- });
- $("div").click(function() {
- alert("div");
- })
- </script>
- </body>
- </HTML>
- $(document).ready(function(){
- // 在这里写你的 JS 代码...
- })
- $(function(){
- // 你在这里写你的代码
- })
- $("table").on("click", ".delete", function () {
- // 删除按钮绑定的事件
- })
来源: http://www.bubuko.com/infodetail-3295370.html