我想知道我们是否可以同时使用其id和class来选择元素。我知道在css中我们可以用#x.y
做到这一点,但是如何在javascript中完成呢?我尝试了下面的代码,它工作正常,但随后ui-slider-handle类的所有控件都受到影响(这很明显)。我想我需要id和class的组合,以便只影响那个特定的元素。
的Javascript :
$(".ui-slider-handle").text(ui.value);
答案 0 :(得分:5)
用于选择元素的ID和类的组合是无用的,因为ID应该是唯一的。
从不在一个页面中具有多个具有相同值的标识符!
如果您想要具有相同属性的多个元素,请使用类。如果没有,请考虑一个ID或一个类。
如果你想拥有许多具有相同属性的元素,但是有一个具有额外属性的元素,你可以给它一个ID并为ID分配额外的属性
答案 1 :(得分:1)
由于ID应该是唯一的,因此您应该只能通过id来执行选择。如果要将相同属性应用于多个元素,则应使用类。在您的场景中,您似乎应该可以使用这样的ID:
$("#id").text(ui.value);
答案 2 :(得分:1)
您永远不需要这样做,因为ID是唯一的;如果你知道,你就可以识别出这个元素了。
您的问题实际上是您的选择器匹配太多元素。还有其他方法可以限制选择器的“范围”:
添加具有特定ID /类的父元素:.parent .ui-slider-handle
仅匹配具有类ui-slider-handle
您还可以按父类型限制:div .ui-slider-handle
或仅直接儿童:div > .ui-slider-handle
答案 3 :(得分:0)
你能写的是:
$("#ID.ui-slider-handle").text(ui.value);
引号内的字符串是一个普通的CSS选择器,它同时支持类和ID。但是,上面的代码是冗余和缓慢的,除非你想只在它有某个类的情况下选择那个特定的id,否则最好写一下:
$("#ID").text(ui.value);