jQuery選擇器的使用注意事項:


1. 選擇其中含有特殊符號

        W3C規范規定屬性值中不能含有某些特殊字符,但在實際開發過程中,常遇到表達式中含有“#”或“.”等特殊字符的情況,如果按照普通的方式去處理就會出錯,解決此類問題的方法就是使用轉義符轉義。

  有如下代碼:

  <div id="id#a">aa</div>

  <div id="id[2]">cc</div>

  按照普通的方式來獲取。例如:

    $("#id#a");

  $("#id[2]");

  將不能獲取到元素,改為轉義符的寫法如下:

  $("#id\\#a");

  $("#id\\[2\\]");

 

2. 選擇器中含有空格

  選擇器中的空格也是不容忽視的,多一個空格或少一個空格,都會得到截然不同的結果(是由於后代選擇器  和 過濾選擇器 存在不同引起的):

  有如下HTML代碼:

  <div class="test">

    <div style="display:none;">aa</div>

    <div style="display:none;">bb</div>

    <div style="display:none;">cc</div>

    <div class="test" style="display:none;">dd</div>

  </div>

  <div class="test" style="display:none;">ee</div>

  <div class="test" style="display:none;">ff</div>

  使用如下jQuery選擇器來分別獲取他們:

  var $t_a=$(".test  :hidden");

       var $t_b=$(".test:hidden");

       var  len_a=$t_a.length;

  var  len_b=$t_b.length;

  alert("$('.test  :hidden')="+len_a);                   //輸出4

       alert("$('.test:hidden')="+len_b);                  //輸出3

      之所以出現不同的結果,是因為后代選擇器與過濾選擇器存在不同

  var $t_a=$(".test  :hidden");               //帶空格的jQuery選擇器

  以上代碼選取的是class為“test”的元素內部的隱藏元素(子元素)。

  而以下代碼:

  var $t_b=$(".test:hidden");                //不帶空格的jQuery選擇器

  選取的是隱藏的class為“test”的元素。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM