2

我正在 codeschool.com 上学习 jQuery,一个问题困扰着我。我们正在学习在单个 jQuery 条目中选择多个 html 元素。使用的html代码如下,我们应该选择亚洲类的元素和销售类的元素。

正确答案是 $(".asian, .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="#">↑&lt;/a></li><li><a href="#">↓&lt;/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="#">↑&lt;/a></li><li><a href="#">↓&lt;/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="#">↑&lt;/a></li><li><a href="#">↓&lt;/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="#">↑&lt;/a></li><li><a href="#">↓&lt;/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> 
4

9 回答 9

2

europe sale就像两个类europe和另一个类,sale您可以选择每个类或europesale但始终使用类的元素europe sale

要选择具有两个类的元素,europe sale您可以执行更多方法,例如:

$('.europe')

或者

$('.sale')

您选择元素是因为该类包含在该类数组中

要仅使用带有类的元素,europe sale您可以执行以下操作:

$('.europe.sale')
于 2013-08-02T08:23:18.147 回答
2

html 中的类用空格分隔。因此,如果您设置“欧洲销售”,那么两者都被视为元素的类。

于 2013-08-02T08:24:12.030 回答
1

基本上有两个类<li class="europe sale">。一是欧洲,二是销售。

于 2013-08-02T08:22:53.213 回答
0

一个 HTML 元素可以应用更多类。它们是空间分隔的。

于 2013-08-02T08:23:05.273 回答
0

由于 class 属性包含一个空格字符,因此实际上有 2 个类与该元素相关联,.europe并且.sale.

于 2013-08-02T08:23:08.697 回答
0

类属性中的每个单词都是类。欧洲——使用的是第一类,销售是第二类。

于 2013-08-02T08:24:11.013 回答
0

类可以定义多次。在您的样式表中有两个类,一个是 europe,另一个是 sale,即使您想要在那里,您也可以使用空格指定更多类。现在在您的 jquery 中,您正在选择那一类销售。如果你想选择包含欧洲类的销售类,那么你可以选择这个$('.europe.sale')

于 2013-08-02T08:24:40.077 回答
0

CSS 允许在单个元素中使用多个类名。这意味着您的li元素同时具有类europesale.

MDN说:

class:此属性是元素类的空格分隔列表。类允许 CSS 和 Javascript 通过类选择器或函数(如 DOM 方法 document.getElementsByClassName)选择和访问特定元素。

于 2013-08-02T08:25:12.440 回答
0

HTML4 规范(强调我的):

class = cdata-list [CS]
此属性将一个类名或一组类名分配给一个元素。可以为任意数量的元素分配相同的类名或名称。多个类名必须用空格字符分隔。

因此,如果一个元素具有属性class="europe sale",则意味着它有两个类:europesale

于 2013-08-02T08:25:13.810 回答