如何检查$(this)
是div
,ul
还是blockquote
?
例如:
if ($(this) is a div) {
alert('its a div!');
} else {
alert('its not a div! some other stuff');
}
答案 0 :(得分:83)
这样的事情:
if(this.tagName == 'DIV'){
alert("It's a div!");
} else {
alert("It's not a div! [some other stuff]");
}
答案 1 :(得分:40)
没有jQuery的解决方案已经发布,所以我将使用jQuery发布解决方案
$(this).is("div,ul,blockquote")
答案 2 :(得分:19)
如果没有jQuery,您可以说this.tagName === 'DIV'
请记住tagName
中的'N'是大写的。
或者,有更多标签:
/DIV|UL|BLOCKQUOTE/.test(this.tagName)
答案 3 :(得分:4)
if(this.tagName.toLowerCase() == "div"){
//it's a div
} else {
//it's not a div
}
编辑:在我写作的时候,给出了很多答案,对不起是双重的
答案 4 :(得分:3)
通过jQuery,您可以使用$(this).is('div')
:
针对选择器,元素或jQuery对象检查当前匹配的元素集,如果这些元素中至少有一个与给定的参数匹配,则返回true。
答案 5 :(得分:3)
检查此元素是否为DIV
if (this instanceof HTMLDivElement) {
alert('this is a div');
}
对于UL,HTMLUListElement
相同
blockquote的HTMLQuoteElement
答案 6 :(得分:2)
其中一些解决方案有点落伍。您只需要常规旧JavaScript中的tagName
即可。你再也没有从jQuery重新包装整个东西中获得任何好处,特别是在库中运行一些更强大的函数来检查标记名称。如果你想在这个页面上测试它,这是一个例子。
$("body > *").each(function() {
if (this.tagName === "DIV") {
alert("Yeah, this is a div");
} else {
alert("Bummer, this isn't");
}
});
答案 7 :(得分:1)
我正在加强Andreq Frenkel的答案,只是想添加一些而且它变得太长了所以在这里...
考虑CustomElements扩展现有的并且仍然能够检查元素是否是input
,这让我认为instanceof
是解决此问题的最佳解决方案。
但是应该注意,instanceof
使用引用相等,因此父窗口的HTMLDivElement
将不会与其iframe
(或影子DOM等)的窗口相同
要处理这种情况,应该使用checked元素自己的窗口类,如:
element instanceof element.ownerDocument.defaultView.HTMLDivElement
答案 8 :(得分:1)
一个古老的问题,但是由于没有一个答案提到这一点,因此,没有jquery的现代替代方法可能只是使用CSS选择器和Element.matches()
$path_to_file = "FOLDER_name/"; //dont miss the last slash
$space->UploadFile($path_to_file, "public","sub/folders/" . $path_to_file, 'text/directory'); // be noted for the mime type for the folder
答案 9 :(得分:0)
尝试使用tagName
答案 10 :(得分:0)
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 */