JQuery常用函數及功能小結

1.文檔加載完成執行函數
 $(document).ready(function(){
  alert("開始了");
 });

 

2.添加/刪除CSS類
 $("#some-id").addClass("NewClassName");
 $("#some-id").removeClass("ClassNameToBeRemoved");
 
3.選擇符 利用了CSS和Xpath(XML Path Language)選擇符的能力,以及jQuery獨有的選擇符
 3.1常用的:
    1.根據標籤名: $('p')  選擇文檔中的所有段落
    2. 根據ID: $("#some-id")
    3.類: $('.some-class')
 3.2使用CSS選擇符:
    $("#some-id > li")  選擇特定id下的所有子li元素
    $("#some-id li:not(.horizontal)")  僞類選擇,特定id下所有沒有.horizontal 類的li元素
 3.3使用XPath選擇符:
  屬性選擇:$("a[@title]") 選擇所有帶title屬性的鏈接
         $("div[ol]") 選擇包含一個ol元素的所有div元素
         $('a[@href^="mailto:%22]')  選擇所有帶href屬性[@href]且該屬性值以mailto開頭^="mailto"(^標識字符串開始,$標識字符串結尾,*表示字符串中任意位置)
         $('a[@href$=".pdf"]') 選擇帶有href屬性且該屬性值以.pdf結尾的所有鏈接
         $('a[@href*="mysite.com"]') 選擇mysite.com出現在href任意位置(包含mysite.com)的所有鏈接
 3.4JQuery自定義選擇符(過濾器,從已選擇的結果集中過濾出符合某一條件的所有元素),與CSS的僞類選擇符相似,使用“:”開頭
  1.$('div.horizontal:eq(1)')  選擇帶有類horizontal的div集合中的第2個項
     $('div:nth-child(1)')  選擇作爲其父元素第1個子元素的所有div
  2.自定義選擇符:odd和:even選擇奇偶行
   $('tr:odd').addClass('odd'); //過濾選擇結果集中的奇數元素
   $('tr:even').addClass('even'); //過濾選擇結果集中的偶數元素
  3.自定義選擇符:contains()
   $('td:contains("Henry")') 選擇包含Henry字符串的所有表格
 3.5JQuery選擇函數
  1.$('#some-id').parent() 選擇特定元素的父元素
  2.$('#some-id').next()  選擇特定元素最近的下一個同級元素
  3.$('#some-id').siblings() 選擇特定元素的所有同級元素
  4.$('#some-id').find('.some-class') 選擇特定元素下所有包含特定類的元素
  5.$('#some-id').find('td').not(':contains("Henry")') 選擇特定元素下表格內容不包含Henry的所有元素
  5.$('#some-id').find('td').not(':contains("Henry")').end()  .end()表示回到最後一次.find()的元素處
 3.6訪問DOM元素,使用get()方法從選擇後的JQuery對象中獲得,去掉JQuery的包裝
  var myTag = $('#some-id').get(0).tagName;
  var myTag = $('#some-id')[0].tagName;  //與上面的等效
  
4.事件(都是給某一元素綁定事件)
 4.1綁定事件 
  $("#some-id").bind("click", function(){   })
  $("#some-id").unbind("click", bindedFunctionName);  //移除已綁定的事件,前提是綁定的函數有名稱(不是匿名函數)
  $("#some-id").click(function(){  })
 4.2複合函數綁定事件
  $("#some-id").toggle(function(){ } ,function(){ }); //交替執行
  $(“#some-id”).toggleClass("hidden"); //  添加/刪除類交替進行
  $("#some-id").hover(function(){ }, function(){ }); //鼠標進入元素時執行第一個函數,離開元素時執行第二個函數
  $("#some-id").one("click", functionName);  //只需觸發一次,隨後便立即解除綁定
 4.3模仿用戶觸發某一事件
  $("#some-id").trigger("click"); //觸發特定元素的click事件

 

5.爲元素添加效果
 5.1讀取或設置CSS樣式屬性
  $("#some-id").css("property") //讀取樣式值
  $('#some-id').css('property', 'value') //設置一個樣式值
  $('#some-id').css({property1: 'value1', property2: 'value2'}) //設置多個樣式屬性
 5.2改變字體大小
  $(document).ready({
   $('#button-id').click(function(){
    var currentSize = $('#text-id').css('fontSize'); //獲取字體大小,如30px
    var num = parseFloat(currentSize, 10); //將值轉爲浮點數,.parseFloat( , )爲javascript內置函數,這裏是轉爲10進制的浮點數
    var unit = currentSize.slice(-2); //獲取單位名稱,如px,.slice()是javascript內置函數,獲取字符串指從定位置開始的子字符串,-2表示倒數兩個字符
    num *= 1.5;
    $('text-id').css('fontSize', num + unit); //設置字體大小樣式
   });
  });
 5.3隱藏和顯示
  $('#some-id').show();    //無效果,會自動記錄原來的display屬性值(如:block, inline),再回復display值
  $('#some-id').hide();  //無效果,等效於:$('#some-id').css('display', 'none');   隱藏元素,不保留物理位置
  大小、透明度逐漸變化的顯示或隱藏
  $('#some-id').show('slow'); //指定顯示速度,在指定時間內元素的高、寬、不透明度逐漸增加到屬性值,有:slow是0.6秒,normal是0.4秒,fast是0.2秒,或者直接填入毫秒數
  $('#some-id').hide(800); //與.show()指定速度顯示一樣,指定時間內高、寬、不透明度逐漸減小到0
  淡入淡出
   $('some-id').fadeIn('slow'); //指定時間內不透明度屬性值由0增加到1
   $('some-id').fadeOut('slow'); //指定時間內不透明度值由1減小到0
 5.4構建具有動畫效果的show
  主要調用.animate()方法,其有4個參數:包含樣式屬性及值的映射;可選的速度參數;可選的緩動類型;可選的回調函數;
  1.併發顯示多個效果
   $('#some-id').animate({height: 'show', width: 'show', opacity: 'show'}, 'slow', function(){ alert('動畫顯示元素');});
   $('div .button').animate({left:600, height:44}, 'slow');  //水平位置從0移動到600,高度由0增加到44
  2.排隊顯示多個效果,級聯多個.animate(),一個效果顯示完了再顯示下一個效果
   $('#some-id').animate({left:600}, 'slow').animate({height: 44}, 'slow');
   
6DOM操作
 6.1屬性操作
  $('#some-id').attr('property'); //獲取屬性
  $('#some-id').attr('property','value'); //設置屬性
  $('#some-id').attr({'property1': 'value1', 'property2': 'value2'}); //設置多個屬性
  修改一個段落中所有鏈接,並給每個鏈接附上新的id號
   $('div p .content a').each(function(index){
    $(this).attr({
     'rel': 'external',
     'id': 'link_' + index
    });
   });
   // *********   JQuery的.each()類似一個迭代器,給其傳遞的參數index類似一個計數器  *********
 6.2插入新元素
  1.將元素插入到其他元素前面:.insertBefore()和.before()
  2.將元素插入到其他元素後面:.insertAfter()和after()
  3.將元素插入到其他元素內部或後面(相當於追加一個元素):appendTo()和append()
  4.將元素插入到其他元素內部或前面(相當於追加一個元素):prependTo()和prepend()
 6.3包裝元素,將元素包裝到其他元素中 .wrap();
  $('#some-id').wrap('<li></li>'); // 將某一特定元素包裝到li中,即在特定元素外圍添加一個包圍元素
 6.4複製元素 .clone()
  1.$('#some-id').clone().appendTo($('body'));
  2.複製深度,當傳入false參數時,只複製匹配上的元素,其內部的其他元素不復制
   $('#some-id').clone(false)
  注意:.clone()方法不會複製元素中的事件
 6.5移除匹配元素中的元素,類似清空元素
  $('#some-id').empty();
 6.6從DOM中移除匹配的元素及其後代元素
  $('#some-id').remove();

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