1, :eq()和nth-child()
看下面代碼:
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$("#selected-plays > li:eq(1)").addClass("a");
//等價於 $("#selected-plays > li:nth-child(2)").addClass("a");
//注意:js數組是從 0 開始的,所以eq(1)是取第二個元素。
//而css選取器:nth-child()是從 1 開始的, 所以要選擇第二個元素, 得使用 :nth-child(2) ,而不是:nth-child(1)。
})
</SCRIPT>
2,:odd 和 :even
:odd : 奇數行
:even : 偶數行
新手經常會說,好像跟我們做的相反?
其實與 :eq() 選取器一樣, 下標都是從 0開始的,
也就是 表格的第一行 編號是 0 (偶數);
第二行 編號是 1 (奇數);以此類推。。。
3, $("tr:odd").addClass()
可以寫成 $("tr").filter(":odd").addClass()
4,$('td:contains("cssrain")') //取得 包含 字串 cssrain 的所有td
5,jquery 轉 dom :
$("td").get(0).tagName 或 $("td")[0].tagName
6,load():
jquery中的load()有2層意思,
第一層 意思 可以等價於 dom中 window.onload
第二層 意思 可以load(url )。
7:ready簡寫:
1;
$(document).ready(function(){
//do something
})
2;
$().ready(function(){
//do something
})
3;
$(function(){
//do something
})
8,事件冒泡:
正常的來說:點擊B 會觸發a的click。
如果我們不想觸發A,可以用stopPropagation() 阻止冒泡.
具體例子:
<div id="a">aaaaaaa
<div id="b">bbbbbbbb</div>
aaaaaa</div>
<script src="jquery.js" type="text/javascript"></script>
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$('#a').click(function(){
alert("A")
})
$('#b').click(function(e){
alert("B")
e.stopPropagation();//阻止冒泡, 從來不輸出 “A" 。 可以去掉 ,試試對比效果。
})
})
</SCRIPT>
9, hide()show()會記住上一次的dipslay狀態
<script src="jquery.js" type="text/javascript"></script>
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$('#test').toggle(function(){
$('#a').hide();//display : none ,記住display 為 inline
$('#b').hide();//display : none ,記住display 為 block
},function(){
$('#a').show(); //display : inline
$('#b').show(); //display : block
})
})
</SCRIPT>
<DIV id="a" style="display:inline;">a</div>
<DIV id="b" style="display:block;">b</div>
<input type="button" id="test" value="test" />
10, hide() show()加時間參數
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<script src="jquery.js" type="text/javascript"></script>
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$('#test').toggle(function(){
$('#a').hide(500);//display : none
$('#b').hide(500);//display : none
},function(){
$('#a').show(500); //display : inline
$('#b').show(500); //display : block
})
})
</SCRIPT>
<DIV id="a" style="display:inline;">a</div>
<DIV id="b" style="display:block;">b</div>
<input type="button" id="test" value="test" />
11,效果:
show(), hide()會同時修改多個樣式屬性 : 高度,寬度和不透明度。
fadeIn() fadeOut() : 不透明度
fadeTo() : 不透明度
slideDown() , slideUp() :高度
如果都不能滿意,只能用animate()了
animate()提供了更為強大的,複雜的效果。
12,animate() :
之前 .show('slow'); // slow代表的是0.6秒內同時改變高度,寬度和透明度 。 如果用時間表示是 600 ;=== .show(600);
那麼我們再來看看 animate()
animate({heigth : 'slow' ,width : 'slow' } , 'slow' )
這裡之所以可以 height : 'slow' 其實就跟 .show('slow') 類似,當然他前面規定了height 。。
13,做動畫之前 先確定位置。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<script src="jquery.js" type="text/javascript"></script>
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$('#a').css("position","absolute");//如果把這句去掉,動畫就沒了。
/*
在使用.animate之前,請先把位置確定,不管你是用的 absolute 還是relative
總之要設定其中的一種,因為所有的區塊層級元素預設是static。
其實是跟css有關。
*/
$('#test').click(function(){
$('#a').animate({ left : '300' } , 'slow' )
})
})
</SCRIPT>
<DIV id="a" >a</div>
<input type="button" id="test" value="test" />
14,width()和css('width')
<script src="jquery.js" type="text/javascript"></script>
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$('#test').click(function(){
var t1 = $('#a').width();
var t2 = $('#a').css('width');
alert( t1 ); //200 , 不帶單位
alert( t2 ); //200px , 帶單位
alert( parseInt(t2) ) //200 , 不帶單位
})
})
</SCRIPT>
<DIV id="a" style="width:200px">a</div>
<input type="button" id="test" value="test" />
15:animate()做動畫效果時,動畫執行的順序。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<script src="jquery.js" type="text/javascript"></script>
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$('#test').click(function(){
$('#a').animate({left : "300px" } , "slow" )
.animate({ top : "300px" } , "slow" );
})
})
</SCRIPT>
<DIV id="a" style="position:absolute;width:10px;height:10px;">a</div>
<input type="button" id="test" value="test" />
//發生上面是按照順序來執行的。先改變left,然後再改變top
對比:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
<script src="http://www.cssrain.cn/demo/JQuery+API/jquery-1[1].2.1.pack.js" type="text/javascript"></script>
<SCRIPT LANGUAGE="JavaScript">
$(function(){
$('#test').click(function(){
$('#a').animate({left : "300px" , top : "300px"} , "slow" )
})
})
</SCRIPT>
<DIV id="a" style="position:absolute;width:10px;height:10px;">a</div>
<input type="button" id="test" value="test" />
//發生上面是一起執行的,也就是 left和top 一起改變。
區別知道了吧。