jQuery選擇器之全選擇器(*選擇器)
在CSS中,經(jīng)常會(huì)在第一行寫(xiě)下這樣一段樣式
* {padding: 0; margin: 0;}
通配符*意味著給所有的元素設(shè)置默認(rèn)的邊距。jQuery中我們也可以通過(guò)傳遞*選擇器來(lái)選中文檔頁(yè)面中的元素
描述:
$( "*" )
拋開(kāi)jQuery,如果要獲取文檔中所有的元素,通過(guò)document.getElementsByTagName()中傳遞"*"同樣可以獲取到
不難發(fā)現(xiàn),id、class、tag都可以通過(guò)原生的方法獲取到對(duì)應(yīng)的節(jié)點(diǎn),但是我們還需要考慮一個(gè)兼容性的問(wèn)題,我這里順便提及一下,比如:
- IE會(huì)將注釋節(jié)點(diǎn)實(shí)現(xiàn)為元素,所以在IE中調(diào)用getElementsByTagName里面會(huì)包含注釋節(jié)點(diǎn),這個(gè)通常是不應(yīng)該的
- getElementById的參數(shù)在IE8及較低的版本不區(qū)分大小寫(xiě)
- IE7及較低的版本中,表單元素中,如果表單A的name屬性名用了另一個(gè)元素B的ID名并且A在B之前,那么getElementById會(huì)選中A
- IE8及較低的版本,瀏覽器不支持getElementsByClassName
看到了吧,作為一名合格的前端不是那么簡(jiǎn)單的,就一個(gè)基本的選擇器上面都需要做這么多兼容,幸好有jQuery的出現(xiàn),讓我們省了很多功夫,如果大家對(duì)jQuery的實(shí)現(xiàn)感興趣,可以看我另一個(gè)門(mén)課程 《jQuery源碼解析》
任務(wù)
在代碼編輯器中第43行填寫(xiě)相應(yīng)的代碼
$("*")
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title></title>
<style>
div {
width: 100px;
height: 90px;
float: left;
padding: 5px;
margin: 5px;
background-color: #EEEEEE;
}
</style>
<script src="http://idcbgp.cn/static/lib/jquery/1.9.1/jquery.js"></script>
</head>
<body>
<div class="aaron">
<p>class="aaron"</p>
<p>選中</p>
</div>
<div class="aaron">
<p>class="aaron"</p>
<p>選中</p>
</div>
<div class="imooc">
<p>class="imooc"</p>
<p>jQuery選中</p>
</div>
<div class="imooc">
<p>class="imooc"</p>
<p>jQuery選中</p>
</div>
<script type="text/javascript">
//獲取頁(yè)面中所有的元素
var elements1 = document.getElementsByTagName('*');
</script>
<script type="text/javascript">
//獲取頁(yè)面中所有的元素
var elements2 = ? ;
//原生與jQuery方法比較
//===表示數(shù)據(jù)和類(lèi)型都相等
if(elements2.length === elements1.length){
elements2.css("border","1px solid red");
}
</script>
</body>
</html>
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求