Здесь есть сценарии: http://jsbin.com/itusut/6/editJavaScript: как отличить выбранный список элементов и форму
Привет, у меня есть функция:
function on(t, e, f) {
if (e.length) {
var l = e.length,
n = 0;
for (; n < l; n++) {
e[n].addEventListener(t, f, false)
}
} else {
e.addEventListener(t, f, false);
}
}
если мы var handle = document.getElementsByClassName('some-class');
то handle
список узлов.
если мы делаем var handle = document.getElementById('an-id');
, то handle
- это единственный узел.
Проблема в том, что когда я выбираю <form id="login-form">
, он возвращает массив не один элемент.
Итак, моя on
функция не работает. Функция использует фильтр elm.length
. Все в порядке, кроме <form>
. Как это исправить? я знаю elm.length не работает должным образом на одном узле <form>
элемент.
Не могли бы вы помочь? Большое спасибо
Вы можете добавить проверку для тега имя, но ответ @zzzzBov кажется немного более подходящим. – dc5
'if (e.length &&! E.nodeName) {' –
@ crazy-train: e.nodeName - это точный ответ, почему бы не сделать ответ? –