Обробка кількох ідентифікаторів у jQuery


75

Чи можна обробляти кілька ідентифікаторів, як у коді?

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

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

Відповіді:


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 - ні, це не самозамикаючий елемент :)
Нік Кравер

Що робити, якщо ці div створюються автоматично #segment {i} і їх невизначена кількість?
Reveclair

@Reveclaire Якщо б вам довелося, скористайтеся селектором атрибутів "починається з" таким чином: $("[id^=segement]").hide()(дещо масштабувати його до батьківського не буде поганою ідеєю).
Нік Кравер

1

Рішення:

На ваше другорядне запитання

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

Ви можете використовувати змінну як заміну селектора.

elem1.css ({'display': 'none'}); //буду працювати

У нижченаведеному випадку селектор вже зберігається у змінній.

$ (elem1, elem2, elem3) .css ({'display': 'none'}); // не буде працювати

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.