jQuery知识点
jQuery 简介
- jQuery 库可以通过一行简单的标记被添加到网页中。
- jQuery是一个JavaScript函数库。
- jQuery是一个轻量级的"写的少,做的多"的JavaScript库。
jQuery 语法
语法
- jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。
- 基础语法: $(selector).action()
- 美元符号定义 jQuery
选择符(selector)“查询"和"查找” HTML 元素
jQuery 的 action() 执行对元素的操作 - 例子:
$(this).hide() - 隐藏当前元素
$("p").hide() - 隐藏所有 <p> 元素
$("p.test").hide() - 隐藏所有 class="test" 的<p>元素
$("#test").hide() - 隐藏所有 id="test" 的元素
文档就绪函数
- 把 jQuery 函数位于一个 document ready 函数中:
为了防止文档在完全加载(就绪)之前运行 jQuery 代码,即在 DOM 加载完成后才可以对 DOM 进行操作。如果在文档没有完全加载之前就运行函数,操作可能失败。例如:试图隐藏一个不存在的元素,获得未完全加载的图像的大小 - 实例:
$(document).ready(function(){
// 开始写 jQuery 代码...
});
简洁写法(与以上写法效果相同):
$(function(){
// 开始写 jQuery 代码...
});
jQuery 选择器
jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。
选择器
- jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。
- jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。
- jQuery 中所有选择器都以美元符号开头:$()。
- 在 HTML DOM 术语中:选择器允许您对 DOM 元素组或单个 DOM 节点进行操作。
元素选择器
- jQuery 使用 CSS 选择器来选取 HTML 元素。
- $(“p”) 选取
元素。
用户点击按钮后,所有 <p> 元素都隐藏:
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
- $(“p.intro”) 选取所有 class=“test” 的
元素。
用户点击按钮后所有带有 class="test" 属性的元素都隐藏:
$(document).ready(function(){
$("button").click(function(){
$(".test").hide();
});
});
- $(“p#demo”) 选取所有 id=“demo” 的
元素。
当用户点击按钮后,有 id="test" 属性的元素将被隐藏:
$(document).ready(function(){
$("button").click(function(){
$("#demo").hide();
});
});
- 其余实例
1. $("*") 选取所有元素
2. $(this) 选取当前 HTML 元素
3. $("p.intro") 选取 class 为 intro的<p>元素
4. $("p:first") 选取第一个 <p> 元素
5. $("ul li:first") 选取第一个 <ul> 元素的第一个 <li> 元素
6. $("ul li:first-child") 选取每个 <ul> 元素的第一个 <li> 元素
7. $("[href]") 选取带有 href 属性的元素
8. $("a[target='_blank']") 选取所有 target 属性值等于 "_blank" 的 <a>元素
9. $("a[target!='_blank']") 选取所有 target 属性值不等于 "_blank" 的 <a>元素
10. $(":button") 选取所有 type="button" 的 <input> 元素 和 <button> 元素
11. $("tr:even") 选取偶数位置的 <tr> 元素
12. $("tr:odd") 选取奇数位置的 <tr> 元素
属性选择器
jQuery 使用 XPath 表达式来选择带有给定属性的元素。例如:
$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。
CSS 选择器
jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。下面的例子把所有 p 元素的背景颜色更改为红色:
$("p").css("background-color","red");
jQuery 事件
事件
事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。例如:
- 在元素上移动鼠标。
- 选取单选按钮
- 点击元素
在事件中经常使用术语"触发"(或"激发")例如: “当您按下按键时触发 keypress 事件”。
常见的dom事件
鼠标事件 | 键盘事件 | 表单事件 | 文档/窗口事件 |
---|---|---|---|
dblclick | keydown | change | resize |
mouseenter | keyup | focus | scroll |
mouseleave | blur | unload | |
hover |
方法语法
- 在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法。例如
页面中指定一个点击事件:
$("p").click();
然后定义一个方法写出此事件在什么时间发生
$("p").click(function(){
// 动作触发后执行的代码!!
});
jQuery 名称冲突
jQuery 使用 $ 符号作为 jQuery 的简介方式。某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号。
jQuery 使用名为 noConflict() 的方法来解决该问题。
var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号。
常用的 jQuery 事件方法
- $(document).ready():
$(document).ready() 方法允许我们在文档完全加载完后执行函数。该事件方法在 jQuery 语法 章节中已经提到过。 - click():
click() 方法是当按钮点击事件被触发时会调用一个函数。该函数在用户点击 HTML 元素时执行。例如:
当点击事件在某个 <p> 元素上触发时,隐藏当前的 <p> 元素:
$("p").click(function(){
$(this).hide();
});
- dblclick():
当双击元素时,会发生 dblclick 事件。dblclick() 方法触发 dblclick 事件,或规定当发生 dblclick 事件时运行的函数。例如:
$("p").dblclick(function(){
$(this).hide();
});
- mouseenter():
当鼠标指针穿过元素时,会发生 mouseenter 事件。mouseenter() 方法触发 mouseenter 事件,或规定当发生 mouseenter 事件时运行的函数,例如:
$("#p1").mouseenter(function(){
alert('您的鼠标移到了 id="p1" 的元素上!');
});
- mouseleave():
当鼠标指针离开元素时,会发生 mouseleave 事件。mouseleave() 方法触发 mouseleave 事件,或规定当发生 mouseleave 事件时运行的函数,例如:
$("#p1").mouseleave(function(){
alert("再见,您的鼠标离开了该段落。");
});
- mousedown()
当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。mousedown() 方法触发 mousedown 事件,或规定当发生 mousedown 事件时运行的函数,例如
$("#p1").mousedown(function(){
alert("鼠标在该段落上按下!");
});
- mouseup()
当在元素上松开鼠标按钮时,会发生 mouseup 事件。mouseup() 方法触发 mouseup 事件,或规定当发生 mouseup 事件时运行的函数,例如
$("#p1").mouseup(function(){
alert("鼠标在段落上松开。");
});
- hover()
hover()方法用于模拟光标悬停事件。当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。例如:
$("#p1").hover(
function(){
alert("你进入了 p1!");
},
function(){
alert("拜拜! 现在你离开了 p1!");
}
);
- focus()
当元素获得焦点时,发生 focus 事件。当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。focus() 方法触发 focus 事件,或规定当发生 focus 事件时运行的函数,例如:
$("input").focus(function(){
$(this).css("background-color","#cccccc");
});
- blur()
当元素失去焦点时,发生 blur 事件。blur() 方法触发 blur 事件,或规定当发生 blur 事件时运行的函数,例如
$("input").blur(function(){
$(this).css("background-color","#ffffff");
});
关于获取触发事件的说明
- 获取事件对象
$(document).ready(function(){
$(window).keypress(function(event){
//获取事件对象,里面包含各种有用的信息。
console.log(event);
//console.log(event.which);
});
});
- keypress事件获取键入字符
$(window).keypress(function(event){
//event.which是获取ASCII码,前面的函数是将ASCII码转换成字符,空格键和Enter键输出均为空白。
console.log(String.fromCharCode(event.which));
//从event对象中key属性获取字符,但是Enter键的key值为"Enter",空白键还是空白" "。
console.log(event.key);
});
借鉴了菜鸟教程和w3school教程