2013-08-02 46 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