Я пытаюсь добавить метод к объекту Element прототипа с именем locateAncestor (), который найдет и вернет DOM-узел на основе tagName. Мой код выглядит следующим образом:
Element.addMethods({
locateAncestor: function(element,tag) {
element.ancestors().each(function(e) {
if (tag == e.tagName) {
alert(e.id);
return e;
}
});
}});
Тогда я называю код следующим образом:
var form = target.locateAncestor('FORM');
alert(form);
Это, конечно, вызывает два окна оповещения (). Первый, который вызывается внутри цикла each () и успешно предупреждает идентификатор элемента (в данном случае, элемента FORM). Ниже этого первого alert () я возвращаю «e» (что, когда alert () применяется, предупреждает «HTMLFormElement», как и ожидалось. Однако при вызове этой функции второе alert () возвращает «undefined», а не значение Я ожидаю, что будет возвращено, что, конечно, является "HTMLFormElement".
Есть ли какой-то важный шаг, который я здесь упускаю при добавлении метода, что я должен сделать, чтобы вернуть значение?