如何在javascript中按id和class选择元素?

时间:2012-08-03 13:34:52

标签: javascript jquery

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

的Javascript

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

4 个答案:

答案 0 :(得分:5)

用于选择元素的ID和类的组合是无用的,因为ID应该是唯一的。

从不在一个页面中具有多个具有相同值的标识符!

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

如果你想拥有许多具有相同属性的元素,但是有一个具有额外属性的元素,你可以给它一个ID并为ID分配额外的属性

答案 1 :(得分:1)

由于ID应该是唯一的,因此您应该只能通过id来执行选择。如果要将相同属性应用于多个元素,则应使用类。在您的场景中,您似乎应该可以使用这样的ID:

$("#id").text(ui.value);

答案 2 :(得分:1)

您永远不需要这样做,因为ID是唯一的;如果你知道,你就可以识别出这个元素了。

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

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

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

  3. 或仅直接儿童:div > .ui-slider-handle

  4. See jQuery selectors for all the goodies

答案 3 :(得分:0)

你能写的是:

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

引号内的字符串是一个普通的CSS选择器,它同时支持类和ID。但是,上面的代码是冗余和缓慢的,除非你想只在它有某个类的情况下选择那个特定的id,否则最好写一下:

$("#ID").text(ui.value);