87

Can multiple ids be handled like in the code?

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

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

2 Answers 2

152

Yes, #id selectors combined with a multiple selector (comma) is perfectly valid in both jQuery and CSS.

However, for your example, since <script> comes before the elements, you need a document.ready handler, so it waits until the elements are in the DOM to go looking for them, like this:

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

<div id="segement1"></div>
<div id="segement2"></div>
<div id="segement3"></div>
Sign up to request clarification or add additional context in comments.

4 Comments

If there are no contents for div we can just write <div id="segment1" /> right?
@Rajeev - nope, it's not a self-closing element :)
What if these divs are generated automatically #segment{i} and there are an undefine quantity of them ?
@Reveclaire If you had to, use a "starts with" attribute selector like this: $("[id^=segement]").hide() (scoping it a bit to whatever the parent is wouldn't be a bad idea).
1

Solution:

To your secondary question

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

You can use the variable as the replacement of selector.

elem1.css({'display':'none'}); //will work

In the below case selector is already stored in a variable.

$(elem1,elem2,elem3).css({'display':'none'}); // will not work

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.