看書的時候發現有些選擇器中的帶空格,起初並無在乎,可是當寫選擇器的時候發現怎麼都沒有反應,因而仔細比對本身寫的和書上的代碼,把空格給加上了,結果就有反應了,當是當時不明白是怎麼回事,怎麼也想不通。在看了幾頁書便知道怎麼回事了,寫成博客分享一下。javascript
示例代碼:html
- <html>
- <head>
- <title>選擇器空格的問題</title>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript">
- $(document).ready(function()
- {
- alert("帶空格的選擇器的長度是:"+$(".test :hidden").length);
- alert("不帶空格的選擇器的長度是:"+$(".test:hidden").length);
- });
- </script>
- </head>
- <body>
- <div class="test">
- <div style="display:none;">我是內部div</div>
- <div style="display:none;">我是內部div</div>
- <div style="display:none;">我是內部div</div>
- <div class="test" style="display:none;">我是內部div</div>
- </div>
- <div class="test" style="display:none;">我是外部div</div>
- <div class="test" style="display:none;">我是外部div</div>
- </body>
- </html>
對於上邊的這兩行來講:java
「alert("帶空格的選擇器的長度是:"+$(".test :hidden").length);」的彈出結果爲4jquery
「alert("不帶空格的選擇器的長度是:"+$(".test:hidden").length);」的彈出結果爲3spa
對於過濾選擇器加上了空格的來講,它所獲取的是其子元素的過濾,因此上邊的例子是選取class爲test的元素的子元素的隱藏元素。.net
而對於過濾選擇器沒有加上空格的來講,它所獲取的是其自身元素的過濾,因此上邊的例子選取隱藏的class爲test的元素。htm
這兩個常常把人搞混,可是他們所表達的意思是不同的。blog