0

我想知道我们是否可以同时使用它的 id 和 class 来选择一个元素。我知道在 css 中我们可以做到这一点#x.y,但是如何在 javascript 中完成呢?我尝试了以下代码,它运行良好,但是所有带有 ui-slider-handle 类的控件都受到了影响(这很明显)。我想我需要一个 id 和 class 的组合,这样只有那个特定的元素会受到影响。

Javascript

$(".ui-slider-handle").text(ui.value);
4

4 回答 4

5

用于选择元素的 ID 和类的组合是没有用的,因为 ID 是唯一的。

一页中永远不会有多个具有相同值的标识符!

如果您想要多个具有相同属性的元素,请使用一个类。如果没有,请考虑一个 ID 或一个类。

如果您希望有很多元素具有相同的属性,但其中一个具有额外的属性,您可以给那个元素一个 ID 并为该 ID 分配额外的属性

于 2012-08-03T13:36:39.097 回答
1

由于 id 应该是唯一的,因此您应该能够仅通过 id 进行选择器。如果想要将相同的属性应用于多个元素,那么您应该使用一个类。在您的情况下,您似乎只需像这样使用 id 就可以了:

$("#id").text(ui.value);
于 2012-08-03T13:36:55.540 回答
1

您永远不需要这样做,因为 ID 是唯一的;如果您知道,您已经可以识别该元素。

你的问题实际上是你的选择器匹配了太多的元素。还有其他方法可以限制选择器的“范围”:

  1. 添加具有特定 ID/类的父元素:.parent .ui-slider-handle仅匹配属于该类ui-slider-handle的所有元素的子类的元素parent

  2. 您还可以按父类型限制:div .ui-slider-handle

  3. 或者只有直接的孩子:div > .ui-slider-handle

请参阅 jQuery 选择器了解所有好东西

于 2012-08-03T13:40:42.513 回答
0

你可以写的是:

$("#ID.ui-slider-handle").text(ui.value);

引号内的字符串是一个普通的 CSS 选择器,它支持类和 id。但是,上面的代码是多余且缓慢的,除非您只想选择具有特定类的特定 id,否则最好这样编写:

$("#ID").text(ui.value);
于 2012-08-03T13:38:46.137 回答