2016-07-28 2 views
2

Я хотел бы изменить свойства CSS elementDiv с помощью jQuery. Я понимаю, что при использовании [i] я получаю элемент DOM, а не объект jQuery. Можно ли это изменить, чтобы принять метод jQuery CSS?Доступ к методу jQuery при использовании [i]

Следующий код возвращает следующую ошибку - Object #<HTMLDivElement> has no method 'css'

for (var i = 0; i < elementDiv.length; i++) { 
    if (i >= pagenumber * elementsPerPage && i <= pagenumber * elementsPerPage) { 
     elementDiv[i].css('display', 'block'); 
    } else { 
     elementDiv[i].css('display', 'none'); 
    } 
} 

ответ

0

each Просто используйте:

elementDiv.each(function(i) { 
    if (i >= pagenumber * elementsPerPage && i <= pagenumber * elementsPerPage) { 
     $(this).css('display', 'block'); 
    } else { 
     $(this).css('display', 'none'); 
    } 
}); 

Документы JQuery показать много полезных примеры.

+1

'.each()' против цикла 'for' здесь не проблема - вы можете использовать и то, и это не имеет значения. Что в вашем коде _is_ отличается тем, что оно обматывает ссылку на элемент HTML ('this' в вашем коде) внутри' $() '. Код OP не сделал этого. Было бы одинаково хорошо использовать '$ (elementDiv [i])' в коде OP. Я не предлагаю, лучше ли '.each()' или 'for', чем другой, только то, что они не имеют отношения к проблеме здесь, и всегда хорошо распознавать актуальную проблему, а не смешивать ее с чем-то другим. –

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