Как проверить, является ли $(this)
div
, ul
или blockquote
?
Например:
if ($(this) is a div) {
alert('its a div!');
} else {
alert('its not a div! some other stuff');
}
Как проверить, является ли $(this)
div
, ul
или blockquote
?
Например:
if ($(this) is a div) {
alert('its a div!');
} else {
alert('its not a div! some other stuff');
}
Что-то вроде этого:
if(this.tagName == 'DIV'){
alert("It a div!");
} else {
alert("It not a div! [some other stuff]");
}
Решения без jQuery уже отправлены, поэтому я отправлю решение с помощью jQuery
$(this).is("div,ul,blockquote")
Без jQuery вы можете сказать this.tagName === 'DIV'
Имейте в виду, что "N" в tagName
имеет верхний регистр.
Или, с большим количеством тегов:
/DIV|UL|BLOCKQUOTE/.test(this.tagName)
if(this.tagName.toLowerCase() == "div"){
//it a div
} else {
//it not a div
}
edit: пока я писал, было дано много ответов, извините за двойственность
Переходя через jQuery, вы можете использовать $(this).is('div')
:
Проверьте текущий согласованный набор элементов на объект селектора, элемента или jQuery и верните true, если хотя бы один из этих элементов соответствует заданным аргументам.
Чтобы проверить, является ли этот элемент DIV
if (this instanceof HTMLDivElement) {
alert('this is a div');
}
То же самое для HTMLUListElement
для UL, HTMLQuoteElement
для blockquote
Некоторые из этих решений немного за бортом. Все, что вам нужно, это tagName
из обычного старого JavaScript. Вы действительно не получаете никакой пользы от повторной упаковки всего этого в jQuery еще раз и, особенно, запускаете некоторые из более мощных функций в библиотеке, чтобы проверить имя тега. Если вы хотите проверить его на этой странице, вот пример.
$("body > *").each(function() {
if (this.tagName === "DIV") {
alert("Yeah, this is a div");
} else {
alert("Bummer, this isn't");
}
});
Я улучшаю ответ Андрея Френкеля, просто хотел добавить его, и он стал слишком длинным, поэтому ушел сюда...
Думая о том, что CustomElements расширяет существующие и все еще может проверить, является ли элемент, скажем, input
, заставляет меня думать, что instanceof
- лучшее решение этой проблемы.
Следует помнить, что instanceof
использует ссылочное равенство, поэтому HTMLDivElement
родительского окна не будет таким же, как один из его iframe
(или shadow DOM и т.д.).
Чтобы справиться с этим случаем, нужно использовать собственные классы окон checked element, например:
element instanceof element.ownerDocument.defaultView.HTMLDivElement
Попробуйте использовать tagName
let myElement =document.getElementById("myElementId");
if(myElement.tagName =="DIV"){
alert("is a div");
}else{
alert("is not a div");
}
/*What ever you may need to know the type write it in capitalised letters "OPTIO" ,"PARAGRAPH", "SPAN" AND whatever */