Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Получить массив из checkboxов (https://javascript.ru/forum/misc/1743-poluchit-massiv-iz-checkboxov.html)

4En 11.09.2008 16:24

Получить массив из checkboxов
 
Я тестер, в скрипте ни бум-бум, но оч надо )
Есть код:
<div id="subscribers" class="title_editable_list edit_mode">
<a class="icon_edit" onclick="toggleSubscribersMode(this, '/spaces/12/messages/5'); return false;"
<ul>
<li>
<input id="role_38" class="notify_role" type="checkbox" value="38" onclick="subscribeRole(this, '/spaces/12/messages/5/notifiers/38')" name="role_38"/>
<a href="/users/1">You</a>
</li>
<li>
<input id="role_39" class="notify_role" type="checkbox" value="39" onclick="subscribeRole(this, '/spaces/12/messages/5/notifiers/39')" name="role_39"/>
<a href="/users/2">Aaron Aaron</a>
</li>

...... Надо получить массив из айдишников только чекнутых чекбоксов
СПАСИБО!

Андрей Параничев 11.09.2008 21:59

Лучше взять какой-нибудь фреймворк с CSS-селекторами. Ну или можно так:
var inputs = document.getElementsByTagName("INPUT");
var result = [];

for (var i in inputs)
{
   if (inputs[i].type == "checkbox" && inputs[i].checked == true)
   {
       result[] = inputs[i].id;
    }
}


Топорно и медленно.

Kolyaj 11.09.2008 22:04

Цитата:

Сообщение от Андрей Параничев
Топорно и медленно.

Т.е. с фрэймворком быстрее будет?

ZoNT 11.09.2008 22:08

Зачем for (var i in inputs) если можно for (var i=0;i<inputs.length;i++) ??

Андрей Параничев 11.09.2008 22:29

ZoNT,
Ну не знаю. На 13 символов короче.

ZoNT 11.09.2008 22:58

а как у нас со скоростью выполнения for in и просто for???

Андрей Параничев 11.09.2008 23:28

ZoNT,
Посчитайте. Возможно просто for выиграет ценные сотые доли секунды в предложенном выше примере.

ZoNT 11.09.2008 23:31

30 сотых секунды - это конкретный лаг! Так что надо по возможности оптимизировать большие циклы... Правда, если чекбоксов будет меньше сотни, то можно и подзабить...

Kolyaj 12.09.2008 09:19

Андрей Параничев, прокомментируйте, пожалуйста,
Цитата:

Сообщение от Андрей Параничев
Топорно и медленно.

Вы знаете способ быстрее? (без кэширования)

4En 12.09.2008 10:43

Спасибо!!!
 
Огромное!)))


Часовой пояс GMT +3, время: 11:17.