HTMLElement прототип в IE7 - PullRequest
       7

HTMLElement прототип в IE7

1 голос
/ 20 сентября 2011

Я хочу проверить, является ли аргумент, переданный моей функции, HTMLElement, используя оператор instanceof.Я знаю, что это не работает в IE7, потому что AFAIK IE7 не определяет HTMLElement.Я понял: нет проблем, я просто вернусь к родительскому прототипу, такому как Node.Но, как я узнал из ответов на StackOverflow, Node-объект также не определен в IE7

. Каков сейчас лучший способ проверить, является ли мой параметр узлом / HTMLElement?Я делаю это неправильно?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

В интерфейсе узла HTMLElement соответствует узлам типа 1.

const unsigned short      ELEMENT_NODE                   = 1;

http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-1841493061

Таким образом, вы должны проверить аргумент nodeType:

if (arg && 1 === arg.nodeType) { /* ... */ }
0 голосов
/ 20 сентября 2011

Я давно не пользовался IE7, но проверял бы с if (typeof elementNode == 'element') Это может быть «элемент» или «HTMLElement». Чтобы убедиться, что сначала сделайте alert(typeof elementNode);, чтобы знать, каким будет его тип. Так что вы можете сравнить с этим.

Редактировать: пояснил первый комментатор ↑ это не должно работать.

Тогда я бы попробовал проверить, есть ли такой элемент, как nodeType или nodeName. Может быть с чем-то вроде if (elementNode.nodeName !== null) просто как пример. Всегда пытайтесь использовать alert () раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...