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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.