歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> jQuery中選擇器的空格問題

jQuery中選擇器的空格問題

日期:2017/3/1 10:18:02   编辑:Linux編程

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

示例代碼:

  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