Я намагаюся вибрати всі <div>
s з однаковим ідентифікатором у jQuery. Як мені це зробити?
Я спробував це, і це не спрацювало
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
Я намагаюся вибрати всі <div>
s з однаковим ідентифікатором у jQuery. Як мені це зробити?
Я спробував це, і це не спрацювало
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
Відповіді:
Я б використовував різні ідентифікатори, але присвоював кожному DIV один і той же клас.
<div id="c-1" class="countdown"></div>
<div id="c-2" class="countdown"></div>
Це також має додаткову перевагу в тому, що можна реконструювати ідентифікатори на основі повернення jQuery ('. Зворотний відлік') length.
Добре, як щодо додавання кількох класів до кожного таймера зворотного відліку. IE:
<div class="countdown c-1"></div>
<div class="countdown c-2"></div>
<div class="countdown c-1"></div>
Таким чином ви отримуєте найкраще з обох світів. Це навіть дозволяє повторити "IDS"
Хоча тут є й інші правильні відповіді (наприклад, використання класів), з академічної точки зору, звичайно, можна мати кілька div з однаковим ідентифікатором, і можна вибрати їх за допомогою jQuery.
Коли ви використовуєте
jQuery("#elemid")
він вибирає лише перший елемент із заданим ідентифікатором.
Однак, коли ви вибираєте за атрибутом (наприклад, ідентифікатор у вашому випадку), він повертає всі відповідні елементи, наприклад:
jQuery("[id=elemid]")
Це, звичайно, працює для вибору для будь-якого атрибута, і ви можете додатково уточнити свій вибір, вказавши відповідний тег (наприклад, div у вашому випадку)
jQuery("div[id=elemid]")
Ваш документ не повинен містити два div з однаковим ідентифікатором. Це недійсний HTML , і як результат, базовий API DOM його не підтримує.
Зі стандарту HTML :
id = name [CS] Цей атрибут присвоює ім'я елементу. Це ім’я повинно бути унікальним у документі.
Ви можете призначити різні ідентифікатори кожному div і вибрати їх обидва за допомогою $('#id1, #id2)
. Або призначте один і той же клас обом елементам ( .cls
наприклад) і використовуйте, $('.cls')
щоб вибрати їх обидва.
id
, ні name
.
$("div[id^=" + controlid + "]")
поверне всі елементи керування з тим самим іменем, але потрібно переконатися, що текст не повинен міститися в жодному з елементів керування
Чи можете ви призначити унікальний клас CSS кожному окремому таймеру? Таким чином, ви можете використовувати селектор для класу CSS, який буде чудово працювати з декількома div
елементами.