歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

jQuery中選擇器的空格問題

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

示例代碼:

  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>  

對於上邊的這兩行來說:

“alert("帶空格的選擇器的長度是:"+$(".test    :hidden").length);”的彈出結果為4

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

對於過濾選擇器加上了空格的來說,它所獲取的是其子元素的過濾,所以上邊的例子是選取class為test的元素的子元素的隱藏元素。

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

這兩個經常把人搞混,但是他們所表達的意思是不一樣的。

Copyright © Linux教程網 All Rights Reserved