Набор элементов
Здравствуйте!
Сейчас мне приходится вешать событие на каждый 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, время: 01:57. |