#javascript #jquery
#javascript #jquery
Вопрос:
Как выбрать divs с одинаковым идентификатором, но выбрать их, например, чтобы 1-3-5-7-9 выбирали только эти divs.
Я пытался так
$("document").ready(function(){
var c = $("#as").length;
for(var a = 0; a<c;a--)
{
if(c[a]%2==0){
}
}
});
но это не сработало
Комментарии:
1. вы выбрали что-то вроде селектора ‘:even’ или ‘:odd’, например $(«как: четный»).someOp()
2. Ни один
div
из них не должен быть одинаковымid
,id
должен быть уникальным в документе.3. Вы уверены с
a = 0; a < c; a--
? Это начинается с0
, затем идет вниз, и вы проверяетеless than
.
Ответ №1:
Чтобы создать нечетные divs с классом as, а не id (поскольку вы должны стараться иметь только 1 элемент с заданным id на страницу), сделайте фоновый цвет синим для этого:
$(document).ready(function() {
$('.as:odd').css('background-color','#0000FF');
});
Ответ №2:
У вас не должно быть одного и того же идентификатора более одного раза в вашей разметке. Вместо этого используйте класс, поскольку идентификаторы должны быть уникальными.
Для части «every second» вы можете использовать модификатор :odd в вашем селекторе:
$("#as:odd").each(function(elm){
// Do something here with the element (elm)
});
Ответ №3:
Вы могли бы использовать эту конструкцию:
$('div-selector:odd')
Ответ №4:
Чтобы найти только нечетные:
$('divSelector:odd').css('background-color','#ffa');
Все выбранные селектором элементы с нечетными номерами div
будут окрашены в желтый цвет.
divSelector может быть любым именем класса $('.classNameOfDivs')
или просто типом элемента: $('div')
.
Ответ №5:
Чтобы исправить ваш код:
$(document).ready(function()
{
var c = $("#as");
for(var a = 0; a < c; a )
{
if (a % 2 == 0)
{
var element = c.eq(a);
// Do stuff here.
}
}
});
Однако лучшим способом было бы использовать селекторы :odd
и :even
. Также обратите внимание, что у вас не должно быть более одного элемента с одним и тем же id
; используйте class
вместо этого.