在jQuery中处理多个ID


75

可以像代码中一样处理多个id吗?

<script>
$("#segement1, #segement2, #segement3").hide()
</script>

<div id="segement1"/>
<div id="segement2"/>
<div id="segement3"/>

Answers:


131

是的,将#id选择器多个选择器(逗号)结合使用在jQuery和CSS中都完全有效。

然而,你的榜样,因为<script>来自之前的元素,你需要一个document.ready处理器,所以它一直等待,直到元素在DOM去寻找他们,就像这样:

<script>
  $(function() {
    $("#segement1,#segement2,#segement3").hide()
  });
</script>

<div id="segement1"></div>
<div id="segement2"></div>
<div id="segement3"></div>

如果没有div的内容,我们可以写<div id =“ segment1” />对吗?
拉杰夫

3
@Rajeev-不,这不是一个自动关闭的元素:)
Nick Craver

如果这些div是自动生成的#segment {i}且数量不确定,该怎么办?
Reveclair 2014年

@Reveclaire如果必须的话,使用这样的“开始于”属性选择器:(将其$("[id^=segement]").hide()范围确定为任何父对象都不会是一个坏主意)。
尼克·克拉弗

1

解:

对于您的第二个问题

var elem1 = $('#elem1'),
    elem2 = $('#elem2'),
    elem3 = $('#elem3');

您可以使用变量代替选择器。

elem1.css({'display':'none'}); //将工作

在以下情况下,选择器已存储在变量中。

$(elem1,elem2,elem3).css({'display':'none'}); // 不管用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.