特點:
消除瀏覽器差異:你不需要自己寫冗長的代碼來針對不同的瀏覽器來綁定事件旧困,編寫AJAX等代碼
簡潔的操作DOM的方法:寫$('#test')肯定比document.getElementById('test')來得簡潔
輕松實現(xiàn)動畫、修改CSS等各種操作
jQuery的使用
- 1芭商、獲取 jQuary
從 jQuery 官網(wǎng) 官網(wǎng)可以下載最新版本
- 2、引入 jQuary
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
...
</head>
<body>
...
</body>
</html>
$符號
$
是著名的 jQuery 符號简烘。實際上亏狰,jQuery把所有功能全部封裝在一個全局變量jQuery中,而$
也是一個合法的變量名劫狠,它是變量jQuery的別名
DOM操作中我們經(jīng)常使用的代碼
// 按ID查找:
var a = document.getElementById('dom-id');
// 按tag查找:
var divs = document.getElementsByTagName('div');
// 查找<p class="red">:
var ps = document.getElementsByTagName('p');
// 過濾出class="red":
// TODO:
// 查找<table class="green">里面的所有<tr>:
var table = ...
for (var i=0; i<table.children; i++) {
// TODO: 過濾出<tr>
}
jQuery的基本選擇器的使用
按ID查找
按id查找注意在id名稱前加一個
#
// 查找<div id="abc">:
var div = $('#abc');
注意拴疤,#abc以#開頭。返回的對象是jQuery對象独泞。
什么是jQuery對象呐矾?jQuery對象類似數(shù)組,它的每個元素都是一個引用了DOM節(jié)點的對象懦砂。
以上面的查找為例蜒犯,如果id為abc的<div>存在组橄,返回的jQuery對象如下:
[<div id="abc">...</div>]
如果id為abc的<div>不存在,返回的jQuery對象如下:
[]
總之jQuery的選擇器不會返回undefined或者null罚随,這樣的好處是你不必在下一行判斷if (div === undefined)玉工。
jQuery對象和DOM對象之間可以互相轉(zhuǎn)化:
var div = $('#abc'); // jQuery對象
var divDom = div.get(0); // 假設(shè)存在div,獲取第1個DOM元素
var another = $(divDom); // 重新把DOM包裝為jQuery對象
按tag查找
按tag查找只需要寫上tag名稱就可以了
var ps = $('p'); // 返回所有<p>節(jié)點
ps.length; // 數(shù)一數(shù)頁面有多少個<p>節(jié)點
按class查找
按class查找注意在class名稱前加一個
.
var a = $('.red'); // 所有節(jié)點包含`class="red"`都將返回
// 例如:
<div class="red">...</div>
<p class="green red">...</p>
通常很多節(jié)點有多個class淘菩,我們可以查找同時包含red和green的節(jié)點:
var a = $('.red.green'); // 注意沒有空格遵班!
// 符合條件的節(jié)點:
<div class="red green">...</div>
<div class="blue green red">...</div>
按屬性查找
一個DOM節(jié)點除了id和class外還可以有很多屬性,很多時候按屬性查找會非常方便潮改,比如在一個表單中按屬性來查找:
var email = $('[name=email]'); // 找出<??? name="email">
var passwordInput = $('[type=password]'); // 找出<??? type="password">
var a = $('[items="A B"]'); // 找出<??? items="A B">
當(dāng)屬性的值包含空格等特殊字符時狭郑,需要用雙引號括起來。
按屬性查找還可以使用前綴查找或者后綴查找:
var icons = $('[name^=icon]'); // 找出所有name屬性值以icon開頭的DOM
// 例如: name="icon-1", name="icon-2"
var names = $('[name$=with]'); // 找出所有name屬性值以with結(jié)尾的DOM
// 例如: name="startswith", name="endswith"
通過class屬性查找汇在,且不受class包含多個名稱的影響:
var icons = $('[class^="icon-"]'); // 找出所有class包含至少一個以`icon-`開頭的DOM
// 例如: class="icon-clock", class="abc icon-home"
組合查找
組合查找就是把上述簡單選擇器組合起來使用
只希望查找<input>翰萨,就可以這么寫:
var emailInput = $('input[name=email]'); // 不會找出<div name="email">
根據(jù)tag和class來組合查找也很常見:
var tr = $('tr.red'); // 找出<tr class="red ...">...</tr>
多項選擇器
多項選擇器就是把多個選擇器用,組合起來一塊選
$('p,div'); // 把<p>和<div>都選出來
$('p.red,p.green'); // 把<p class="red">和<p class="green">都選出來