jQuery中選擇器的空格問題

看書的時候發現有些選擇器中的帶空格,起初並無在乎,可是當寫選擇器的時候發現怎麼都沒有反應,因而仔細比對本身寫的和書上的代碼,把空格給加上了,結果就有反應了,當是當時不明白是怎麼回事,怎麼也想不通。在看了幾頁書便知道怎麼回事了,寫成博客分享一下。javascript

示例代碼:html

[javascript] view plain copy print ?
  1. <html>  
  2.     <head>  
  3.         <title>選擇器空格的問題</title>  
  4.         <script type="text/javascript" src="jquery.js"></script>  
  5.          <script type="text/javascript">  
  6.             $(document).ready(function()  
  7.             {  
  8.                 alert("帶空格的選擇器的長度是:"+$(".test   :hidden").length);  
  9.                 alert("不帶空格的選擇器的長度是:"+$(".test:hidden").length);  
  10.             });  
  11.          </script>  
  12.     </head>  
  13.     <body>  
  14.         <div class="test">  
  15.             <div style="display:none;">我是內部div</div>  
  16.             <div style="display:none;">我是內部div</div>  
  17.             <div style="display:none;">我是內部div</div>  
  18.             <div class="test" style="display:none;">我是內部div</div>  
  19.         </div>  
  20.         <div class="test" style="display:none;">我是外部div</div>  
  21.         <div class="test" style="display:none;">我是外部div</div>  
  22.     </body>  
  23. </html>  

對於上邊的這兩行來講:java

「alert("帶空格的選擇器的長度是:"+$(".test    :hidden").length);」的彈出結果爲4jquery

「alert("不帶空格的選擇器的長度是:"+$(".test:hidden").length);」的彈出結果爲3spa

對於過濾選擇器加上了空格的來講,它所獲取的是其子元素的過濾,因此上邊的例子是選取class爲test的元素的子元素的隱藏元素。.net

而對於過濾選擇器沒有加上空格的來講,它所獲取的是其自身元素的過濾,因此上邊的例子選取隱藏的class爲test的元素。htm

這兩個常常把人搞混,可是他們所表達的意思是不同的。blog

相關文章
相關標籤/搜索