前面兩篇已經道明瞭jQuery的核心框架。弄清楚了jQuery對象的組成,以及如何用extend方法來擴展庫。鏈式操做 也僅僅是方法體內返回this。
爲了敘述每一篇的重點,其示例代碼都是最精簡的,好比選擇器只能傳HTMLElement和id。
這篇咱們加強下選擇器,依據2/8原則,這裏僅實現最經常使用的幾種。
1, 經過id獲取,該元素是惟一的javascript
1
|
$(
'#id'
)
|
2, 經過className獲取html
1
2
3
4
5
6
|
$(
'.cls'
)
// 獲取文檔中全部className爲cls的元素
$(
'.cls'
, el)
$(
'.cls'
,
'#id'
)
$(
'span.cls'
)
// 獲取文檔中全部className爲cls的span元素
$(
'span.cls'
, el)
// 獲取指定元素中className爲cls的元素, el爲HTMLElement (不推薦)
$(
'span.cls'
,
'#id'
)
// 獲取指定id的元素中className爲cls的元素
|
3, 經過tagName獲取java
1
2
3
|
$(
'span'
)
// 獲取文檔中全部的span元素
$(
'span'
, el)
// 獲取指定元素中的span元素, el爲HTMLElement (不推薦)
$(
'span'
,
'#id'
)
// 獲取指定id的元素中的span元素
|
4, 經過attribute獲取框架
1
2
3
4
5
6
7
8
9
|
$(
'[name]'
)
// 獲取文檔中具備屬性name的元素
$(
'[name]'
, el)
$(
'[name]'
,
'#id'
)
$(
'[name=uname]'
)
// 獲取文檔中全部屬性name=uname的元素
$(
'[name=uname]'
, el)
$(
'[name=uname]'
,
'#id'
)
$(
'input[name=uname]'
)
// 獲取文檔中全部屬性name=uname的input元素
$(
'input[name=uname]'
, el)
$(
'input[name=uname]'
,
'#id'
)
|
示例:this
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<!DOCTYPE html>
<html>
<head>
<meta charset=
"utf-8"
>
<title>zchain test</title>
</head>
<body>
<div id=
'content'
>aaa</div>
<div>bbb</div>
<p
class
=
"pra"
>ccc</p>
<input type=
"submit"
value=
"submit"
/>
<input type=
"button"
value=
"submit"
/>
<script type=
"text/javascript"
>
var
obj1 = $(
"#content"
);
// id
var
obj2 = $(
'div'
);
// tagName
var
obj3 = $(
'.pra'
);
// className
var
obj4 = $(
'input[type=button]'
);
// attribute
console.log(obj1);
console.log(obj2);
console.log(obj3);
console.log(obj4);
</script>
</body>
</html>
|
Firebug輸出以下spa