認識JQuery:
1、window.onload與$(document).ready()的區別
window.onload
$(document).ready()
執行時機
必須等待網頁中的所有內容加載完畢後才能執行
網頁中所有DOM結構繪制完畢後就執行,可能DOM元素關聯的東西並沒有完全加載完
編寫個數
不能同時編寫多個方法
可以同時編寫多個
簡化寫法
$(document).ready(function(){
//…
})
2、jQuery對象以及DOM對象
jQuery:
$(”#foo”).html( ); //獲取id為foo的元素內的html代碼,html( )是jQuery裡的方法
在DOM中,
document.getElementById("foo").innerHTML;
3、
獲取jQuery對象 : var $variable = jQuery對象
獲取DOM對象 : var variable = DOM對象
4、jQuery對象不能使用DOM中的方法,要將轉為DOM對象才可以使用 [index] , get(index)
jQuery是一個類似於數組的對象,可以通過[index]的方法得到相應的DOM對象
方法1:
var $cr = $("#cr") ; //jQuery對象
var cr = $cr[0]; //DOM對象
alert(cr.checked) //檢測這個checkbox是否被選中
方法2:
var $cr = $("#cr"); //jQuery對象
var cr = $cr.get(0); //DOM對象
alert(cr.chencked);
5、DOM對象轉化為jQuery對象:只要用$()將DOM對象包起來就可以得到一個jQuery對象
jQuery代碼:
var cr = document.getElementById("cr"); //DOM對象
var $cr = $(cr) //jQuery對象
6、
$(document).ready(function(){
var $cr = $("#cr"); //jQuery對象
var cr = $cr[0]; //DOM對象
$cr.click(function(){
if(cr.checked){ //DOM判斷
alert("感謝你的支持,你可以繼續操作");
}
})
})
$(document).ready(function(){
var $cr = $("$cr"); // jQuery對象
$cr.click(function(){
if($cr.is(":checked")){ //jQuerry判斷
alert("感謝你的支持,你可以繼續操作");
}
})
})
jQuery選擇器:
1、<p class="demo"> aaaa </p> ----在jQuery中獲取到節點:$(".demo")
2、JS中:
<div>test</div>
<script type="text/javascript">
document.getElementById("tt").style.color = "red";
------會報錯,在文檔中沒有id=tt的節點
</script>
<div>test</div>
<script type="text/javascript">
if(document.getElementById("tt")){
document.getElementById("tt").style.color = "red";
------不會報錯,在文檔中即使沒有id=tt的節點
}
</script>
jQuery中:
<div>test</div>
<script type="text/javascript">
$('#tt').css("color","red");
-----在jQuery中是不需要判斷該節點是否存在的,
</script>
$('#tt')獲取的永遠是對象,即使網頁中沒有此元素
3、jQuery中檢測某個元素是否存在的時候,不能使用以下代碼,應該利用對象的長度或者轉化為DOM對象
if( $('#tt') ){
----錯誤的
}
if( $('#tt').length > 0){
//do Something
}
if( $('#tt')[0] ){
//do Something
}
4、
$("div,span,p.myClass")選取所有的<div>,<span>,以及class為myClass的<P>標籤的一組標籤 ----集合元素
基本選擇器:
$("#one").css("background","#bbffaa");
$(".mini").css("background","#bbffaa");
$("div").css("background","#bbffaa");
$("*").css("background","#bbffaa");
$("span, #two").css("background","#bbffaa");
層次選擇器:
$("div span")選取<div>裡的所有span元素
$("div > span")選取<div>元素下,元素名為<span>的子元素
$(".one + div")選取class為one的下一個<div>的同輩元素
$("#two ~div")選取id為two的元素後面的所有<div>同輩元素
過濾選擇器:
$("div :first")選取所有<div>元素後面的第一個<div>元素
$("div :last")選取所有<div>元素後面的最後一個<div>元素
$("input :not(.myClass)")選取class不是myClass的<input>元素
$("input :even")選取索引是偶數的<input>元素
$("input :odd")選取索引是奇數的<input>元素
$("input :eq(1)")選取索引等於1的<input>元素
$("input :gt(1)")選取索引大於1的<input>元素
$("input :lt(1)")選取索引小於1的<input>元素
$("div :animated")選取正在執行動畫的<div>元素
$(":focus")選取當前獲取焦點的元素
內容過濾選擇器:
$("div :contains('我')")選取含有文本 “我”的<div>元素
$("div :empty")選取不包含子元素(包括文本元素)的<div>空元素
$("div :has(p)")選取含有<p元素的<div>元素
$("div :parent")選取擁有子元素(包括文本元素)的<div>元素
可見性過濾選擇器:
$(":hidden")選取所有的不可見元素,包含<input type="hidden" />,<div style="display:none;">和<div style="visibility:hidden;">等元素
$("input :hidden")
$("div :visible") 選取所有的可見的div元素
屬性過濾選擇器:
$("div[id]") 選取擁有屬性id的元素
$("div[title=test]") 選取title為test的div元素
$("div[title != test]") 選取title不等於test的div元素,沒有改屬性的也會被選中
$("div[title ^= test]") 選取title屬性以“test”開始的div元素
$("div[title $= test]") 選取title屬性以“test”結束的div元素
$("div[title *= test]") 選取title屬性含有“test”的div元素
$('div[title |= "en"]') 選取title屬性等於en獲取以en為前綴(- 分隔)的元素
$("div[title ~= "uk"]") 選取title屬性用空格分隔的值中包含字符uk的元素
$("div[id][title $= 'test']") 選取擁有屬性id,並且屬性title以“test”結束的div元素
子元素過濾選擇器:
:nth-child(index/even/add) :選取每個父元素下的第index個子元素或者奇偶元素,index從1開始,為每一個符合條件的父元素匹配子元素
:first-child :選取每個父元素的第一個子元素
:last-child :選取每個父元素的最後一個子元素
:only-child 如果某個元素是它父元素中唯一的子元素,則會被匹配
表單對象屬性過濾器:
:enabled :選取所有可用元素 ---disabled
:disabled :選取所有不可用的元素 ---disabled
:checked :選取所有被選中的元素
:selected :選取所有被選中的選項元素(下拉列表) $("select option:selected")選取所有被選中的選項元素
獲取內容的是text()方法
表單選擇器:
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
5、
可以使用next()方法代替$('prev + next')選擇器
$(".one + div") 等價於 $(".one").next("div")
可以使用nextAll()方法代替$('prev ~sibling')
$("#prev ~div") 等價於 $("#prev").nextAll("div")
sibling()與$('prev ~sibling')選擇器進行比較,sibling()與位置無關
//選取#prev之後的所有同輩div元素
$("#prev ~div").css("background","#bbffaa");
//同上
$("#prev").nextAll("div").css("background","#bbffaa");
//選取##prev的所有同輩div元素,與前後位置無關
$("#prev").sibling("div").css("background","#bbffaa");
6、選擇器中含有空格,多一個空格或少一個空格也許會得到截然不同的結果
//選取class為“test”的元素裡面的隱藏元素
var $a = $('.test :hidden'); ---帶空格的 ---長度為4
//選取掩藏的class為“test”的元素
var $b = $('.test:hidden'); ---不帶空格的 ---長度為3