Исключение JS, вызванное элементом 'form'

Сегодня я столкнулся с этой проблемой, и это меня сильно раздражает... Я поддерживаю проект JS и есть строка:

node.tagName

где node.nodeType является 1, Очевидно, что код хочет получить имя тега этого элемента, и кажется, что он отлично работает на 99,99% веб-страниц...

К сожалению, когда я выполняю скрипт на http://codeforces.com/problemset/problem/377/D, он не работает. Причина в том, что есть form элемент с дочерним узлом, который имеет свойство name="tagName",
введите описание изображения здесь

Дочерние узлы form элемент, который имеет свойство name можно получить доступ как:node.NAME_VALUE( ссылка), так node.tagName получит своего ребенка с именем свойства tagName а не имя тега узла form,

Кто-нибудь тоже сталкивался с этой проблемой? Существуют ли другие решения, кроме проверки, является ли узел form?


РЕДАКТИРОВАТЬ 1:
Я выпустил ошибку для JQuery здесь. Я сделал это, потому что JQuery может быть гораздо проще исправить это для .prop("tagName") чем заставить все браузеры решить эту проблему.
Кстати, я думаю, что никто не должен использовать что-то вроде tagName или же nodeName как HTMLInputElement's name значение.

2 ответа

Если node.tagName не работает у вас, используйте node.nodeName,

я используюnode.nodeName в моем коде.

Я не эксперт в этих вопросах, так что, возможно, это не лучший ответ, который вы могли бы получить, но тем не менее... я могу подумать о двух решениях:

1) Вместо этого используйте nodeName, если вы можете быть уверены, что входное имя не будет существовать.

2) Использование element.clone(false).tagName (такие как document.getElementById('someid').clone(false).tagName)

Другие вопросы по тегам