jQuery基礎教程

代碼風格
$(function(){});           //執行一個匿名函數
$("#box");                   //進行執行的ID元素選擇
$("#box").css("color","red");

$恆等於jQuery;

多個庫之間的衝突解決
$(function(){       // jQuery庫在base庫之前引用,那麼$所有權就是base庫的
     alert($('#box').ge(0));
     alert($$('#box').get(0));
})

jQuery.noConflict();   //自行了斷,把自己的$所有權剔除
var $$=jQuery;              
$(function(){     // jQuery庫在base庫之後引用,那麼$所有權就是jQuery庫的
     alert($('#box').ge(0));
     alert($$('#box').get(0));
})

                                                     常規選擇器
ID選擇器
$(function(){
      $("#box").css("color","red");
     $("div").css("color","oracle");
     $(".pox").css("color","green");
});

警告:ID是唯一標識符,只能在頁面出現一次。

get(0)/eq(0):獲取第一個元素

#box>p{     //css子選擇器,IE6不支持
 color:red
}

$(#box).css("color","red");  jQuery兼容IE6

//js容錯判斷
if(document.getElementById("pox")){
document.getElementById("pox").style.color="red";

//很多情況下有動態DOM生成的問題,會導致執行不存在的ID選擇器
}

判斷
if($("#pox").size()>0){
$("#pox").css("color","red");
}


if($("#pox").get(0)){    
...
}
兩個相等
if($("#pox")[0]){
...
}

元素選擇器
$('div')     獲取所有div元素的DOM對象

ID選擇器
$('#box')    獲取一個ID爲box元素的DOM對象

類(class)選擇器
$('.box')    獲取所有class爲box的所有DOM對象


                                  進階選擇器
羣組選擇器
${'span,em,box'}   獲取多個選擇器的DOM對象

後代選擇器
$('ul li a')   獲取追溯到的多個DOM對象

通配選擇器
$('*')          獲取所有元素的DOM元素


                                  高級選擇器
子選擇器
$('div p')   只獲取子類節點的多個DOM對象

next選擇器
$('div+p') 只獲取某節點後一個同級DOM對象

nextAll 選擇器  
$('div~p') 獲取某節點後面所有同級DOM對象
              
find()方法
$('box').find('p').css("color","red")

next()方法
$('box').next('p').css("color","red")

$('box').next('').css("color","red")  //next()等選擇器方法不傳參,就相當於傳遞了*號

//prevAll()
$('box').prevAll('p').css("color","red") 
$('box').nextAll('p').css("color","red") 

//siblings上下同級所有
$('box').siblings('p').css("color","red") 

//nextUntil()方法
$('box').nextUntil('p').css("color","red") 

//prevUntil()方法
$('box').prevUntil('p').css("color","red") 


                                            過濾選擇器
$("li:first")          選取第一個元素
$("li:last")          選取最後一個元素
$("li:not(red)")  選取class不是red的li元素
$("li:even")        選擇索引(0開始)是偶數的所有元素
$("li:odd")        選擇索引(0開始)是奇數的所有元素
$("li:eq(2)")        選擇索引(0開始)等於index的元素
$("li:gt(2)")        選擇索引(0開始)大於index的元素
$("li:lt(2)")        選擇索引(0開始)小於index的元素
$(".header")      選擇標題元素,h1~h6
$(".animated")   選擇正在執行動畫的元素
$(".focus")         選擇當前被焦點的元素


                                                 內容過濾器
$(":contains("yckucom")")
$(".empty")         選取不包括子元素或空文本的元素
$(".has(.red)")     選取含有class是red的元素
$(".parent")         選取含有子元素或文本的元素
                           
                                                   子元素過濾器
$("li:first-child")          獲取每個父元素的第一個元素
$("li:last-child")          獲取每個父元素的最後一個元素
$("li:only-child")          獲取只有一個子元素的元素
$("li:nth-child(1)")             獲取每個自定義的元素(索引值從1開始)

alert($('.red').is(function(){
 return $(this).attr('title')=='列表3';
}));
//注意必須用$(this)來表示要判斷的元素,否則不管function裏面是否返回true或false都和調用的元素無關

$("li").slice(2,-2).css("background","#ccc");     選中順數第2位至倒數第2位   
                                
                                                  DOM
D表示的是頁面文檔Document
O 表示對象
M 表示模型  即頁面上的元素節點和文本節點


元素內容的操作
html()        獲取元素中的html內容   
next()          獲取元素中的文本內容,有html會自動清理
val()           獲取表單中的文本內容 ,可以傳遞數組
$(function(){
$('input').val();
})

$('div').attr('title'.'我是域名');   //class不建議用attr來設置

$('div').attr('title'.function(index,value){
return  '原來的title是: '+value+',現在的title是:我是'+(index+1)+'號域名';
})
}); 

$('div').removeAttr('title');      //刪除指定的元素

                                                          基礎DOM和CSS樣式
var box=$('div').css(["color","height","width"]);
for(var i in box){
alert(i+":" +box[i]);
}

$.each(box,function(attr,value){
alert(attr+":"+value);
});
$('div').each(function(index,element){
    alert(index+':'+element);
});

$('div').css({
   'color':'blue',
   'background-color':'#eee',
  'width':'200px',
  'height':'200px'
});

$('div').css('width',function(index,value){
   //局部操作
 return (parselnt(value)-500)+'px';
});

$('div').addClass('red');  //添加
$('div').removeClass('bg');  //刪除

css類的樣式切換
$('div').click(function(){
 $(this).toggleClass('red size');
});

var count=0;
$('div').click(function(){
 $(this).toggleClass('red size',count++%2==0);
});

$('div').click(function(){
 $(this).toggleClass('red size');
 if($(this).hasClass('red')){
$(this).removeClass('gress');
}else{
  $(this).addClass('green');
}
});

$('div').click(function(){
 $(this).toggleClass(function(){
     if($(this).hasClass('red')){
    $(this).removeClass('red');
  return'green';
  } else{
 $(this).removeClass('green');
   return 'red';
}
});
});

                                                
width(value)   設置某個元素的長度
width(function(index,width){})    通過匿名函數設置某個元素的長度
height(value)   設置某個元素的高度

innerWidth();   //包含內邊距
offset()             //獲取某個元素相對於視口的偏移位置
position           //獲取某個元素相對於父元素的偏移位置
scrollTop()        //獲取垂直滾動條的值
scrollTop(value)  //設置垂直滾動條的值
scrollLeft()          //獲取水平滾動條的值
scrollLeft(value)  //設置水平滾動條的值
   
                                                DOM節點操作
append(content)   //向指定的元素內部後面插入節點content
append(function(index,html){})  //使用匿名函數向指定元素內部後面插入節點
appendTo(content)  //將指定元素移入到指定元素content內部後面
prepend(content)   //向指定元素content內部的前面插入節點
prepend(function(index,html){})  //使用匿名函數向指定元素內部的前面插入節點
prependTo(content)    //將指定元素移入到指定元素content內部前面

包裹節點
wrap(html)       //向指定元素包裹一層html代碼
wrap(element)   //向指定元素包裹一層DOM對象節點
wrap(function(index){})  //使用匿名函數向指定元素包裹一層自定義內容
unwrap()              //移除一層指定元素包裹的內容
wrapAll(html)     //用html將所有元素包裹到一起
wrapInner(html)   //向指定元素的子內容包裹一層html
wrapInner(element)  //向指定元素的子內容包裹一層DOM對象節點
wrapInner(function(index){})  //用匿名函數向指定元素的子內容包裹一層

表單選擇器
$('input').val();    //元素名定位,默認獲取第一個
$('input').eq(1).val();   //同上,獲取第二個
$('input[type=password]').val();   //選擇type爲paddword的字段
$('input[name=user]').val();    //選擇name爲user的字段

表單過濾器
$(':enabled').size();     //獲取可用元素
$(':disabled').size();     //獲取不可用元素
$(':checked').size();     //獲取單選、複選框中被選中的元素
$(':selected').size();     //獲取下拉列表中被選中的元素

基礎事件
$('input').unbind();   //刪除全部事件
$('input').unbind('click');   //只刪除click事件
$('input').mousedown(function(){
//鼠標左鍵按下
})
$('input').mouseup(function(){
//鼠標左鍵按下彈起
})
表單提交作用於form
$('form').submit(function(){
alert("表單提交!");
});

$('div').mouseover(function(){    //移入
       $(this).css("background","red");
}).mouseout(function(){    //移出
       $(this).css("background","red")
});

$('div').mouseenter(function(){    //進入
       $(this).css("background","red");
}).mouseleave(function(){    //離開
       $(this).css("background","red")
});

$('div').mouseover(function(){   //over會觸發子節點
   $('strong').html(function(index,value){
   return value+'1';
});
});

$('div').mouseenter(function(){   //enter不會觸發子節點
   $('strong').html(function(index,value){
   return value+'1';
});
});

$('input').keyup(function(){   //鍵盤彈起
 alert('鍵盤');
});

$('input').keydown(function(){ //按下鍵盤
 alert('鍵盤');
});


$('input').focus(function(){ //光標激活
 alert('光標激活');
});

$('input').blur(function(){ //光標丟失
 alert('光標丟失');
});

$('div').hover(function(){ 
$(this).css('background','red');
}.function(){
  $(this).css('background','green');
});

$('div').toggle(function(){
  $(this).css('background','red');
}.function(){
  $(this).css('background','green');
}.function(){
  $(this).css('background','green');
});


//禁止提交表單跳轉
$('form').submit(function(e){
   e.preventDefault();
});

$('a').click(function(){
 e.preventDefault();//阻止默認行爲
 alert("點擊彈窗");
});

$('a').click(function(e){
return false,
});

//禁止表單提交
$('input').click(function(){
 e.preventDefault();//阻止默認行爲
 alert("表單提交");
});

//阻止冒泡又禁止了默認行爲
$('a').click(function(e){
 e.preventDefault();//阻止默認行爲
e.stopPropagation();
 alert("點擊彈窗");
});

                                      高級事件
//trigger額外數據,只有一條的時候,可以省略中括號,多條不能省略,第二條之後就無法識別了
$('input').click(function(e,data1,data2){
alert(data1+'|'+data2);
}).trigger('click',['123','abc']);


$(function(){
   //bind委託綁定了三個事件
$('button').bind('click',function(){
alert("事件不委託");
})

   //使用live綁定的是document,而非button
//所以,永遠只會綁定一次事件
$('button').live('click',function(){
alert("事件委託");
})

//bind無法動態綁定事件
$('button').bind('click',function(){
$(this).clone().appendTo('#box');
});

//live可以動態綁定事件,因爲事件綁定在document上
$('button').live('click',function(){
$(this).clone().appendTo('#box');
});

});

                       高級事件
$(function(){
   //普通綁定.bind
  //普通解綁 .unbind

  //新方法綁定 .on
  //新方法解綁
$('.button').on('click',{user:'Lee'},function(e){
alert('替代bind'+e.data.user);
});

$('.button').on('mouseover mouseout',function(e){
alert('移入移出');
});

$('.button').on({
  mouseover:function(){
   alert('移入');
},
 mouseout:function(){
   alert('移出');
}
});

$('form').on('submit',function(){
   return false;
});

//移除事件
$('.button').off('click');

//替代.live .delegate
$('#box').on('cilck','button',function(){
  $(this).clone().appendTo('#box');
});

//移除事件委託
$('#box').off('cilck');

//類似於.bind()只觸發一次
$('button').one('cilck',function(){
alert('僅一次事件觸發!')
});

$('#box').one('cilck','button',function(){
  $(this).clone().appendTo('#box');
});
});




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章