Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как получить элементы по классу? 
:(
    Опции темы
Fubu_By
Дата 19.2.2010, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 14.2.2007

Репутация: нет
Всего: 0



как можно получить элементы с определённым классом?


--------------------
PM MAIL WWW   Вверх
bars80080
Дата 19.2.2010, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



с какой целью, прежде всего надо спросить


в крайнем случае перебрать все элементы и проверить класс. для всего DOM это делать конечно не надо, но вопрос обычно касается определённых элементов в какой-то группе. допустим некоторые <p> в пределах одного <div>
PM MAIL WWW   Вверх
Fubu_By
Дата 19.2.2010, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 14.2.2007

Репутация: нет
Всего: 0



да да да. есть div а в нём другие дивы с классом "div-1" и вот мне надо получить их чтобы изменить свойства


--------------------
PM MAIL WWW   Вверх
bars80080
Дата 19.2.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Код

var papa = document.getElementById('id главного дива');
var el = papa.getElementsByTagName('div');
var ell = el.length;
for var i = 0; i < ell; i++) {
    if(el[i].className != 'div-1') { continue; }

    // тут все действия с нашими дивами el[i]

}


наверно, на jquery это делается в два движения. но по сути тоже самое
PM MAIL WWW   Вверх
IDVsbruck
Дата 20.2.2010, 04:15 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Маленькая поправка:
допустим, есть несколько элементов, у одного атрибут class="div-1", а у другого - class="div-1 red". Исходя из логики, мы должны найти оба элемента и заменить нужные параметры. Однако проверка
Код
if(el[i].className != 'div-1') { continue; }

выберет только первый элемент. Поэтому выбирать надо не сравнением, а проверкой регулярки.
PM MAIL   Вверх
iluvatar
Дата 23.2.2010, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 17.9.2007

Репутация: нет
Всего: 4



используя jquery получим массив
$('.div-1')
PM MAIL ICQ   Вверх
IDVsbruck
Дата 23.2.2010, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



100% и удобнее, но вопрос не в той подтеме
PM MAIL   Вверх
Любитель
Дата 23.2.2010, 23:59 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: нет
Всего: 92



Ну так, к слову - везде кроме ИЕ есть getElementsByClassName. В ИЕ8 есть querySelectorAll. Само собой это будет (при достаточно большом количестве элементов) работать быстрее. В случае ие7 и < - да, только полный перебор, по возможности с ограничением по тегу.

Но на самом деле, я всё-таки не понимаю - почему бы не использовать готовый движок селекторов? Если предполагается достаточно много манипуляций с ДОМ-ом, то это оч сильно поможет, да и работать будет быстрее, а кода меньше.


--------------------
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.