Набор элементов
Здравствуйте!
Сейчас мне приходится вешать событие на каждый input, а как можно повесить функцию на событие onСlick для всех Input которые находятся в div function inform(){ alert(this) } <div> <input onclick="inform()" /> <input onclick="inform()" /> ... <div> |
Вот некроссбраузерный (от ie 8) пример на скорую руку:
function setEvents(selector, ev){ var elements = document.querySelectorAll(selector), x; for (x = 0; x < elements.length; x++){ elements[x].onclick = inform; } } Смотреть тут. |
а кросбраузерно, пжст
|
Вообще и на форуме и в статьях и в Интернете много информации по кроссбраузерной выборке элементов. JQuery опять же.
И, даже не читая, как минимум, костыль одноразовый можно написать. Вот такой, например. function getAllInputsFromAllDivs(){ var x, y, inputs, result = [], divs = document.getElementsByTagName("div"); for (x = 0; x < divs.length; x++) { inputs = divs[x].getElementsByTagName("input"); for (y = 0; y < inputs.length; y++) { result.push(inputs[y]); } } return result } Как его прикостылить. |
А что так мешает сделать?
<div> <input type='button' value='button1'> <input type='button' value='button2'> </div> <script> var div = document.getElementsByTagName('div')[0] var inputs = div.getElementsByTagName('input') for(i=0;i<inputs.length;i++) inputs[i].onclick = function () { alert('work') } </script> |
Часовой пояс GMT +3, время: 14:30. |