Я пытаюсь обработать все выбранные элементы с определенным установленным атрибутом data-
.
У меня есть цикл, работающий для выбора элемента, но всякий раз, когда я пытаюсь найти значение других его атрибутов data-
, я получаю undefined
сообщения об ошибках.
Вот цикл:
$('select[data-hm-observed="1"]').each(function(idx, sel) {
alert(sel.getAttribute('data-hm-url'));
alert(sel.data('hmUrl'));
});
В цикле первое предупреждение работает, но второе выдает:
TypeError: 'undefined' не является функцией (вычисление
'Sel.data (' hmUrl ')')
Если я использую консоль Safari, я могу получить объект select, поместить его в переменную и без проблем опросить его атрибуты data-
.
Кажется, что .each()
влияет на содержимое переменной sel
- но я не могу понять, что.
Использование JQuery 1.7.1
UPDATE:
Только что обнаружил, что если я изменяю цикл так, чтобы он снова явно получал элемент, все это работает:
$('select[data-hm-observed="1"]').each(function(idx, sel) {
xx = $(sel);
alert(sel.getAttribute('data-hm-url'));
alert(xx.data('hmUrl'));
});
Это правильное решение?
Могу ли я из этого сделать вывод, что элемент, переданный в цикл с помощью .each, не был «обработан» jquery, и что мне нужно самому извлекать его через $ (...), чтобы jquery с ним все делал - это не чувствует себя хорошо - но это работает.