2015-04-12 6 views
1

В моем дальнейшем понимании JQuery, в чем разница между:JQuery разница между .EQ (счета) и [число]

var allDivs = jQuery('div'); 
for(var count = allDivs.length - 1; count >= 0; count--) { 
    var elem = allDivs.eq(count); 
    if(elem.css('margin-left') == '-15px') { 
     elem.css({'margin-left':'0'}); 
    } 
} 

И:

var allDivs = jQuery('div'); 
for(var count = allDivs.length - 1; count >= 0; count--) { 
    var elem = allDivs[count]; 
    if(elem.css('margin-left') == '-15px') { 
     elem.css({'margin-left':'0'}); 
    } 
} 
+0

Вы увидите, попробовав их, что второй не работает ... И сообщение об ошибке было бы весьма полезно. – Bergi

+0

Мне нужно объяснение, чтобы я мог понять это, и Гуффа был очень полезен, а твой не было. –

ответ

3

allDivs.eq(count) будет возвращать объект JQuery который содержит указанный вами элемент.

allDivs[count] возвращает объект объекта DOM, который вы указали, поэтому вы не сможете использовать метод css, поскольку это метод jQuery.

Использование $(allDivs[count]) дает тот же результат, как и allDivs.eq(count) (по крайней мере до тех пор, как count указывает элемент, который существует в allDivs).

+0

Как я могу использовать $ (allDivs [count]) в моей функции выше? –

+1

@RickHelston: Нравится это: 'var elem = $ (allDivs [count]);' – Guffa

Смежные вопросы