jquery 小結學習1

jquery  小結學習1 


1 閉包 
    javascript中的閉包,實際上就是函數內部可以直接讀取外部的全局變量 
     比如: 
      var n="test"; 
     function f1() 
      { 
       alert(n); 
      } 
       f1()  //輸出test 

    但在函數外部無法訪問函數內部的變量,比如 
     function f1() 
      { 
       var n="test"; 
       } 
       alert(n);//error 
     有時需要得到函數內部的變量,則要通過函數中的函數去實現 
     function f1() 
     { 
       var  n="test"; 
        function f2() 
       { 
         alert(n); //輸出test 
        } 

   f2可以訪問F1中的內部變量,但F2中的內部變量對F1不可見。所以可以寫成如下形式,以在F1的外部 
得到其值 
      function f1() 
      { 
      var  n="test"; 
           function f2() 
       { 
         alert(n); //輸出test 
        } 
       return f2; 
      } 
     var result=f1(); 
      result();//輸出test 
      這個時候f2稱爲F1的閉包 


2 jquery中的加載: 
    $(document).ready( function() { })跟window.onload的區別。其中$(document).ready在框架加載 
完畢後就可以使用,而window.onload必須是所有的頁面加載完成後才能用。 
$(document).ready( function() { })等價於  $(function() { } ) 

3 jquery中的獲取元素小結: 
    1) 通過標籤名改變格式 
         <span>span標籤的顏色變爲紅色</span>

         $(function(){ 
$("span").css("color","red"); 
}); 
    2)通過id選擇器 
  <div id="id_name">標籤id爲id_name,變紅色</div> 
       $(function(){ 
$("#id_name").css("color","red"); 
}); 
   
   3) 通過類名獲取元素 
       <div class="className">這個標籤的類名爲className,因此變爲紅色</div> 
<div>沒有定義標籤的類名,不改變顏色</div> 
    
     $(function(){ 
$(".className").css("backgroundColor","red"); 
}); 
  4) 一次性獲取多個元素 
      比如下面將多個元素的背景設置爲紅色,用逗號分開 
        $(function(){ 
$("p, #id_name, .className").css("backgroundColor","red"); 
}); 
   5) 根據元素的屬性值獲得元素 
     <p id="p_test1" class="class1">p標籤中定義了id屬性,變紅色 
       $("p[id]").css("color","red"); 

6) 通過過濾器獲得元素 
      比如獲得第一個元素  :first,最後一個元素last 
     
第0個li的文字變爲紅色<h3><span>第1個li</span>不變色</h3>第2個li不變色<span>第3個li不變色</span>最後一個li不變色
     $(function(){ 
$("li:first").css("color","red"); 
}); 
    此外還有li:last,li:even(偶數),li:odd(奇數),:empty(獲得空元素) :parent(獲得非空元素) 

7) 獲得表單元素 
    $(function(){ 
$("#msg").html( 
"input元素有"+$(":input").length+"個(取得所有表單元素)<br/>"+ 
"text屬性的元素有"+$(":text").length+"個(取得text屬性的元素)<br/>"+ 
"password屬性元素有"+$(":password").length+"個(取得password屬性的元素)<br/>"+ 
"radio元素有"+$(":radio").length+"個(取得單選按鈕元素)<br/>"+ 
"checkbox元素有"+$(":checkbox").length+"個(取得多選按鈕元素)<br/>"+ 
"submit或image屬性元素有"+$(":submit").length+"個(取得submit屬性或image屬性的元素)<br/>"+ 
"image屬性元素有"+$(":image").length+"個(取得image屬性的元素)<br/>"+ 
"reset屬性元素有"+$(":reset").length+"個(取得reset屬性的元素)<br/>"+ 
"button屬性元素有"+$(":button").length+"個(取得button屬性的元素或button標籤)<br/>"+ 
"file屬性元素有"+$(":file").length+"個(取得file屬性的元素)<br/>"+ 
"hidden屬性元素有"+$("input:hidden").length+"個(取得hidden屬性的表單元素)" 
    ); 
}); 

8) 過濾器獲得表單元素 
     <form> 
  • <label>訂單號碼</label><input type = "text" name="" disabled="disabled"/>
  • <label>訂單所有者</label><input type = "text"/>
    <li><input type = "checkbox" name="category" value="紅"/><label>紅</label> 
    <input type = "checkbox" name="category" value="黃"/><label>黃</label> 
    <input type = "checkbox" name="category" value="藍"/><label>藍</label> 
    <input type = "checkbox" name="category" value="紫"/><label>紫</label> 
    <input type = "checkbox" name="category" value="白"/><label>白</label></li> 

    <li><select multiple= "multiple " > 
    <option>選項1</option> 
    <option>選項2</option> 
    <option>選項3</option> 
    <option>選項4</option> 
    </select/></li> 

</form> 
<div id="msg"> 

<p id="option"> 
</div> 
</body> 
<script src="jquery.js" type="text/javascript"></script> 
<script type="text/javascript"> 


$(function(){ 
    $("input:text:enabled").val("能輸入"); 
    $("input:text:disabled").val("不能輸入"); 
    (function checkboxclick(){ 
    $(":checkbox").unbind("click",checkboxclick); 
    var val=''; 
    $(":checkbox:checked").each(function(){ 
    val += $(this).val()+','; 
    }); 
    $("#category").html("選擇的數據:"+val); 
    $(":checkbox").click(checkboxclick); 
    })(); 
$("select").change(function(){ 
var txt=''; 
$("select option:selected").each(function(){ 
txt += $(this).text() + ','; 
}); 
$("#option").html("選擇的選項是:"+txt); 
}).trigger("change"); 
}); 
</script> 

  這裏也演示了checkbox和option list中的事件操作用法了 

  獲取指定元素一致的元素 
     $('p').filter('.center');//獲取類屬性名爲center的標籤元素 
10 獲取指定範圍的元素 
   //設置4到6標籤的背景色成黃色。 
$(function(){ 
    $("p").slice(4,7).css("backgroundColor","yellow"); 
}); 

11 獲取當前元素的前一個元素,後一個元素,父元素 
      $(function(){ 
    $("p").next('.yes').css('backgroundColor','yellow'); 
}); 
    前一個元素: 
    $(function(){ 
    $("p").prev('.yes').css('backgroundColor','yellow'); 
}); 
   父元素: 
    $(function(){ 
    $("p").parent().css('backgroundColor','yellow'); 
}); 
   子元素: 
     <div id="content"> 
0號

1號


3號

4號

5號

6號

7號

<div> 
</body> 
<script src="jquery.js" type="text/javascript"></script> 
<script type="text/javascript"> 

$(function(){ 
    $("#content").children(".yes").css('backgroundColor','yellow'); 
}); 


12 在元素的不同位置添加元素 
   1)在元素內部添加元素 
    $(function(){ 
    $("#content").append("追加的新文字串。"); 
}); 
   2) $(a).append(b),爲在A元素後添加B,$(a).appendTo(b),則表示將A添加到B後 

  3)在元素的開始位置加內容 
       $("p").prepend("<span>追加的新字符串。</span><br/>"); 
        $(a).prepend(b),爲在A元素後添加B,$(a).prependTo(b),則表示將A添加到B後 
  4) 在元素後追加兄弟元素,比如 
       在此標籤的後面追加內容。

    同樣也在此標籤的後面追加內容。

    $(function(){ 
    $("p").after("<span>追加的新字符串。</span>"); 
}); 
  
    則在所有的元素後都會添加字符串,相反,也有before 
   5) wrap 
      <span>將span標籤包含進div標籤中。</span><br/> 
      $("span").wrap("<div><p>
</div>");//將<span>標籤包含到<div>
</div>中去 

  6)替換元素 
      $(a).replaceWith(B)  用B元素替換A元素 
      $(a).replaceAll(B)  將B元素替換成A元素 
  7) 刪除元素 
        empty(),刪除元素 
        <p id="emptyTest">此標籤的使用empty方法進行刪除。 
        
<p class="emptyTest">準備使用remove方法刪除。 
            $("#emptyTest").empty(); 
          $("p").remove(".emptyTest"); 


13 獲取與設置屬性 
   1)  attr:設置屬性,比如 
     
         $("p#two").attr("title","修改two的title屬性。"); 
   
   2) 刪除屬性值 
      $("p#one").removeAttr("style"); 
   3)增加CLASS 
           $("p#two").addClass("redbox"); 
   4) 刪除 
       $("p#two").removeClass("redbox"); 
    5) toggleClass(class),當指定類名存在,則刪除,否則添加 
        toggleClass(class,swith),當switch表達式爲真,則追加,爲假,則刪除 

   6) 設置HTML元素 
        <p id="one"><b>第一個</b>p標籤的內容。 

         var val=$("p#one").html(); 
    $("p#two").html(val); 
   7) 設置CSS 
       <p id="one">將此標籤的文字變爲紅色 
  
        $('p#one').css('color','red'); 
    $('p#two').css({color:'white',backgroundColor:'green'}); 

14  函數事件 
     1) bind和unbind 
     2) toggle(fn1,fn2,fn3)  定義元素被單擊時按順序執行定義的函數 
       <button id="one">提交</button> 
<p id="two">文字顏色在紅/綠/黑間切換。 
</body> 
<script src="jquery.js" type="text/javascript"></script> 
<script type="text/javascript"> 

$(function(){ 
    $('button#one').toggle(function(){ 
    $('p#two').css('color','red'); 
    },function(){ 
    $('p#two').css('color','green'); 
    },function(){ 
    $('p#two').css('color','black'); 
    }); 
}); 
</script> 

15) AJAX控制 
     $.ajax(options)或jQuery.ajax(options) 
         在此放置讀入的內容。 
      $(function(){ 
$.ajax({ 
url:'test.html', 
success:function(data){ 
$('p#ajax').html(data); 

}); 
}); 

  16 ajaxcomplete 
     例子如下: 
    <div id="comp">在此放置ajax完成時的信息。</div> 
<div id="exec">在此放置讀入的內容。</div> 
    ajax.html: 
    
  • 第0號li元素。
  • 第1號li元素。
  • 第2號li元素。
  • 第3號li元素。
  • 第4號li元素。


     $(function() { 
       $('div#comp').ajaxComplete(function() 
     { 
        $(this).html(..............) 
      } ); 
  ajax通信失敗 
      $(function(){ 
$('div#error').ajaxError(function(){ 
$(this).html("ajax送信失敗...
").css('color','red'); 
}); 
$('div#exec').load('noajax.html'); 
}); 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章