2013-08-02 94 views
2

我在codechool.com上學習jQuery,有一個問題困擾着我。 我們正在學習在單個jQuery條目中選擇多個html元素。所使用的html代碼如下,我們應該選擇亞洲類和銷售類的元素。在jQuery中選擇類

正確答案是$(「亞洲,.sale‘)

我的問題是,怎麼’.sale」成爲類的名字?如果你看下面的html,你會發現沒有元素帶有「class = sale」,只是一個class =「europe sale」的元素。「爲什麼jQuery要求」.sale「而不是」「。歐洲出售「?

<div id="tours-wrapper"> 
    <h1>Guided Tours</h1> 
    <ul id="tours"> 
    <li class="america"> 
     <h2>New York, New York</h2> 
     <span class="details">$1,899 for 7 nights</span> 
     <ul class="vote"><li><a href="#">↑</a></li><li><a href="#">↓</a></li></ul> 
    </li> 
    <li class="europe sale"> 
     <h2>Paris, France</h2> 
     <span class="details">$2,499 for 7 nights</span> 
     <ul class="vote"><li><a href="#">↑</a></li><li><a href="#">↓</a></li></ul> 
    </li> 
    <li class="europe"> 
     <h2>Madrid, Spain</h2> 
     <span class="details">$1,577 for 5 nights</span> 
     <ul class="vote"><li><a href="#">↑</a></li><li><a href="#">↓</a></li></ul> 
    </li> 
    <li class="asia"> 
     <h2>Tokyo, Japan</h2> 
     <span class="details">$1,999 for 5 nights</span> 
     <ul class="vote"><li><a href="#">↑</a></li><li><a href="#">↓</a></li></ul> 
    </li> 
    </ul> 

    <ul class="sorting"> 
    <li><a href="#">America</a></li> 
    <li><a href="#">Europe</a></li> 
    <li><a href="#">Asia</a></li> 
    </ul> 
</div> 
+2

'class'屬性包含一個空格分隔的類名列表。 –

+0

我認爲這是一個錯誤的教程,他們似乎想要:'$(「。asia,.sale」)'這意味着所有元素與類亞洲**或**銷售。如果你只想要歐洲**和**出售的元素(這裏是一個),使用:'$(「。europe.sale」)'。 '$(「。sale.europe」)'會返回相同的結果 –

回答

1

基本上有兩類在<li class="europe sale">,一個是歐洲和第二是銷售。

0

更多類可以被應用到一個HTML元素。它們是空間分離的。

0

由於類屬性包含空格字符,因此實際上有2個類與該元素相關聯,即.europe.sale

2

europe sale就像兩級europe和另一sale,您可以選擇每類或europesale而是採取總是元素與europe sale

爲兩個類選擇eleement europe sale你可以做,例如更多的途徑:

$('.europe') 

$('.sale') 

您選擇的元素,因爲類包含

類的數組中只取元素與類europe sale你可以這樣做:

$('.europe.sale') 
+1

我認爲應該指出,它也可以用'.europe.sale'選擇,它只會選擇具有兩個類的元素 – Andy

0

類屬性的每個字都是一流的。歐洲 - 是第一個使用的類,而銷售是第二類。

2

html中的類用空格分隔。所以如果你設置「歐洲銷售」,那麼兩者都被認爲是元素的類。

0

類可以定義多次。在你的樣式表中有兩個類,一個是歐洲,另一個是銷售,即使你想在那裏,你可以指定更多的空間類。現在在你的jQuery中,你正在選擇一個類的銷售。如果你想選擇包含歐洲類的銷售類,那麼你可以選擇這個$('.europe.sale')

0

CSS允許單個元素中的多個類名。這意味着您的li元素同時具有europesale兩個類別。

MDN說:

: 該屬性是該元素的類的空間分隔的列表。類允許CSS和Javascript通過類選擇器或函數(如DOM方法document.getElementsByClassName)選擇和訪問特定元素。

0

HTML4 specification(重點煤礦):

類= cdata-list[CS]
該屬性分配一個類名稱或一組類名的給一個元素。任何數量的元素可以被分配相同的類名或 名稱。 多個類名必須用空格 個字符分隔。

因此,如果一個元素具有屬性class="europe sale",這意味着它有兩個類:europesale