jQuery
学完JavaScript之后最后再学习一下jQuery,jQuery是js的库,拓展了许多语法,弥补了许多原生js的缺点;同时bootstrap框架也是基于jQuery设计的,因此学习jQuery还是很有必要的。
目录
1、选择器和事件
jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。
基础语法: $(selector).action()
-
美元符号定义 jQuery
-
选择符(selector)“查询"和"查找” HTML 元素
-
jQuery 的 action() 执行对元素的操作
实例:
-
$(this).hide() - 隐藏当前元素
-
$(“p”).hide() - 隐藏所有 <p> 元素
-
$(“p.test”).hide() - 隐藏所有 class=“test” 的 <p> 元素
-
$(“#test”).hide() - 隐藏 id=“test” 的元素
$(function(){
// 开始写 jQuery 代码...
});
jQuery 选择器允许您对 HTML 元素组或单个元素进行操作。
jQuery 选择器基于元素的 id、类、类型、属性、属性值等"查找"(或选择)HTML 元素。 它基于已经存在的 CSS 选择器,除此之外,它还有一些自定义的选择器。
jQuery 中所有选择器都以美元符号开头:$()。
$(“*”) | 选取所有元素 | 在线实例 |
$(this) | 选取当前 HTML 元素 | 在线实例 |
$(“p.intro”) | 选取 class 为 intro 的 <p> 元素 | 在线实例 |
$(“p:first”) | 选取第一个 <p> 元素 | 在线实例 |
$(“ul li:first”) | 选取第一个 <ul> 元素的第一个 <li> 元素 | 在线实例 |
$(“ul li:first-child”) | 选取每个 <ul> 元素的第一个 <li> 元素 | 在线实例 |
$(“[href]”) | 选取带有 href 属性的元素 | 在线实例 |
$(“a[target=‘_blank’]”) | 选取所有 target 属性值等于 “_blank” 的 <a> 元素 | 在线实例 |
$(“a[target!=‘_blank’]”) | 选取所有 target 属性值不等于 “_blank” 的 <a> 元素 | 在线实例 |
$(“:button”) | 选取所有 type=“button” 的 <input> 元素 和 <button> 元素 | 在线实例 |
$(“tr:even”) | 选取偶数位置的 <tr> 元素 | 在线实例 |
$(“tr:odd”) | 选取奇数位置的 <tr> 元素 |
在事件中经常使用术语"触发"(或"激发")例如: “当您按下按键时触发 keypress 事件”。
常见 DOM 事件:
鼠标事件 | 键盘事件 | 表单事件 | 文档/窗口事件 |
---|---|---|---|
click | keypress | submit | load |
dblclick | keydown | change | resize |
mouseenter | keyup | focus | scroll |
mouseleave | blur | unload | |
hover |
2、html
2.1获得内容 - text()、html() 以及 val()
三个简单实用的用于 DOM 操作的 jQuery 方法:
-
text() - 设置或返回所选元素的文本内容
-
html() - 设置或返回所选元素的内容(包括 HTML 标记)
-
val() - 设置或返回表单字段的值
下面的例子演示如何通过 jQuery text() 和 html() 方法来获得内容:
$("#btn1").click(function(){
alert("Text: " + $("#test").text()); });
$("#btn2").click(function(){
alert("HTML: " + $("#test").html()); });
下面的例子演示如何通过 jQuery val() 方法获得输入字段的值:
$("#btn1").click(function(){
alert("值为: " + $("#test").val()); });
获取属性 - attr()
jQuery attr() 方法用于获取属性值。
下面的例子演示如何获得链接中 href 属性的值
$("button").click(function(){
alert($("#runoob").attr("href"));
});
2.2设置text()、val()、html()
设置内容
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
$("#test3").val("RUNOOB");
});
回调函数
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";
});
});
$("#btn2").click(function(){
$("#test2").html(function(i,origText){
return "旧 html: " + origText + " 新 html: Hello <b>world!</b> (index: " + i + ")";
});
$("button").click(function(){
$("#runoob").attr("href","http://www.runoob.com/jquery"); });
attr() 方法也允许您同时设置多个属性。
下面的例子演示如何同时设置 href 和 title 属性:
$("button").click(function(){
$("#runoob").attr({
"href" : "http://www.runoob.com/jquery", "title" : "jQuery 教程" }); });
2.3添加元素
我们将学习用于添加新内容的四个 jQuery 方法:
-
append() - 在被选元素的结尾插入内容
-
prepend() - 在被选元素的开头插入内容
-
after() - 在被选元素之后插入内容
-
before() - 在被选元素之前插入内容
2.4删除元素
如需删除元素和内容,一般可使用以下两个 jQuery 方法:
-
remove() - 删除被选元素(及其子元素)
-
empty() - 从被选元素中删除子元素
2.5操作css类
jQuery 拥有若干进行 CSS 操作的方法。我们将学习下面这些:
-
addClass(“类名”) - 向被选元素添加一个或多个类
-
removeClass() - 从被选元素删除一个或多个类
-
toggleClass() - 对被选元素进行添加/删除类的切换操作
-
css() - 设置或返回样式属性
设置多个 CSS 属性
如需设置多个 CSS 属性,请使用如下语法:
css({“propertyname”:“value”,“propertyname”:“value”,…});
下面的例子将为所有匹配元素设置 background-color 和 font-size:
$("p").css({
"propertyname"}) /*返回css属性值*/
$("p").css({
"background-color":"yellow","font-size":"200%"});
3、jQuery方法(详细补充)
3.1选择器
选择器 | 实例 | 选取 | |||
---|---|---|---|---|---|
* | $(“*”) | 所有元素 | |||
#id | $(“#lastname”) | id=“lastname” 的元素 | |||
.class | $(“.intro”) | class=“intro” 的所有元素 | |||
.class,.class | $(“.intro,.demo”) | class 为 “intro” 或 “demo” 的所有元素 | |||
element | $(“p”) | 所有 <p> 元素 | |||
el1,el2,el3 | $(“h1,div,p”) | 所有 <h1>、<div> 和 <p> 元素 | |||
:first | $(“p:first”) | 第一个 <p> 元素 | |||
:last | $(“p:last”) | 最后一个 <p> 元素 | |||
:even | $(“tr:even”) | 所有偶数 <tr> 元素,索引值从 0 开始,第一个元素是偶数 (0),第二个元素是奇数 (1),以此类推。 | |||
:odd | $(“tr:odd”) | 所有奇数 <tr> 元素,索引值从 0 开始,第一个元素是偶数 (0),第二个元素是奇数 (1),以此类推。 | |||
:first-child | $(“p:first-child”) | 属于其父元素的第一个子元素的所有 <p> 元素 | |||
:first-of-type | $(“p:first-of-type”) | 属于其父元素的第一个 <p> 元素的所有 <p> 元素 | |||
:last-child | $(“p:last-child”) | 属于其父元素的最后一个子元素的所有 <p> 元素 | |||
:last-of-type | $(“p:last-of-type”) | 属于其父元素的最后一个 <p> 元素的所有 <p> 元素 | |||
:nth-child(n) | $(“p:nth-child(2)”) | 属于其父元素的第二个子元素的所有 <p> 元素 | |||
:nth-last-child(n) | $(“p:nth-last-child(2)”) | 属于其父元素的第二个子元素的所有 <p> 元素,从最后一个子元素开始计数 | |||
:nth-of-type(n) | $(“p:nth-of-type(2)”) | 属于其父元素的第二个 <p> 元素的所有 <p> 元素 | |||
:nth-last-of-type(n) | $(“p:nth-last-of-type(2)”) | 属于其父元素的第二个 <p> 元素的所有 <p> 元素,从最后一个子元素开始计数 | |||
:only-child | $(“p:only-child”) | 属于其父元素的唯一子元素的所有 <p> 元素 | |||
:only-of-type | $(“p:only-of-type”) | 属于其父元素的特定类型的唯一子元素的所有 <p> 元素 | |||
parent > child | $(“div > p”) | <div> 元素的直接子元素的所有 <p> 元素 | |||
parent descendant | $(“div p”) | <div> 元素的后代的所有 <p> 元素 | |||
element + next | $(“div + p”) | 每个 <div> 元素相邻的下一个 <p> 元素 | |||
element ~ siblings | $(“div ~ p”) | <div> 元素同级的所有 <p> 元素 | |||
:eq(index) | $(“ul li:eq(3)”) | 列表中的第四个元素(index 值从 0 开始) | |||
:gt(no) | $(“ul li:gt(3)”) | 列举 index 大于 3 的元素 | |||
:lt(no) | $(“ul li:lt(3)”) | 列举 index 小于 3 的元素 | |||
:not(selector) | $(“input:not(:empty)”) | 所有不为空的输入元素 | |||
:header | $(“:header”) | 所有标题元素 <h1>, <h2> … | |||
:animated | $(“:animated”) | 所有动画元素 | |||
:focus | $(“:focus”) | 当前具有焦点的元素 | |||
:contains(text) | $(“:contains(‘Hello’)”) | 所有包含文本 “Hello” 的元素 | |||
:has(selector) | $(“div:has§”) | 所有包含有 <p> 元素在其内的 <div> 元素 | |||
:empty | $(“:empty”) | 所有空元素 | |||
:parent | $(“:parent”) | 匹配所有含有子元素或者文本的父元素。 | |||
:hidden | $(“p:hidden”) | 所有隐藏的 <p> 元素 | |||
:visible | $(“table:visible”) | 所有可见的表格 | |||
:root | $(“:root”) | 文档的根元素 | |||
:lang(language) | $(“p:lang(de)”) | 所有 lang 属性值为 “de” 的 <p> 元素 | |||
[attribute] | $(“[href]”) | 所有带有 href 属性的元素 | |||
[attribute=value] | $(“[href=‘default.htm’]”) | 所有带有 href 属性且值等于 “default.htm” 的元素 | |||
[attribute!=value |