Есть ли способ проверить тип элемента в JavaScript?
Для ответа может потребоваться или не потребоваться библиотека прототипов, однако в следующей настройке библиотека действительно используется.
function(event) {
var element = event.element();
// if the element is an anchor
...
// if the element is a td
...
}
javascript
prototypejs
Кейси Уотсон
источник
источник
element.nodeName.match(/\bTBODY\b/i)
иelement.nodeName.toLowerCase() == 'tbody'
т. Д.Возможно, вам также придется проверить тип узла:
Изменить: исправлено значение nodeType
источник
text/html
.)element.tagName.toLowerCase() === 'a'
element.nodeName.toLowerCase()
если возможно,element
это не будет фактически элементом (например, если вы не выполнилиnodeType == 1
проверку, указанную выше). ВNode
интерфейсе естьnodeName
. ДляElement
случаев, это так же , какtagName
. Для других типов узлов это такие вещи, как"#text"
или"#document"
.nodeType
Хотя, думаю, я всегда буду использовать чек.node.tagName == 'DIV'
roenving правильный, НО вам нужно изменить тест на:
потому что nodeType из 3 на самом деле является текстовым узлом, а nodeType из 1 - это элемент HTML. См. Http://www.w3schools.com/Dom/dom_nodetype.asp
источник
Обычно я получаю это из возвращаемого значения toString (). Он работает в элементах DOM с разным доступом:
Затем соответствующий фрагмент:
Он работает в Chrome, FF, Opera, Edge, IE9 + (в более старых версиях IE он возвращает «[object Object]»).
источник
Хотя предыдущие ответы работают отлично, я просто добавлю еще один способ, в котором элементы также могут быть классифицированы с использованием интерфейса, который они реализовали.
Обратитесь к W3 Org за доступными интерфейсами
Проверка интерфейса может быть произведена двумя способами,
elem instanceof HTMLAnchorElement
либоelem.constructor.name == "HTMLAnchorElement"
оба возвращаются.true
источник
У меня есть другой способ проверить то же самое.
источник