检查,如果元素是一个div

如何检查$(this)div还是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's a div!"); } else { alert("It's not a div! [some other stuff]"); } 

没有jQuery的解决scheme已经发布,所以我会使用jQuery发布解决scheme

 $(this).is("div,ul,blockquote") 

没有jQuery你可以说this.tagName === 'DIV'

请记住, tagName中的“N”是大写字母。

或者,更多标签:

/DIV|UL|BLOCKQUOTE/.test(this.tagName)

通过jQuery你可以使用$(this).is('div')

根据select器,元素或jQuery对象检查当前匹配的元素集合,如果这些元素中至less有一个匹配给定的参数,则返回true。

 if(this.tagName.toLowerCase() == "div"){ //it's a div } else { //it's not a div } 

编辑:在我写作的时候,给了很多答案,抱歉抱歉

其中一些解决scheme有点过分。 所有你需要的是来自普通的旧JavaScript的tagName 。 你再也不用在jQuery中重新包装整个事情了,特别是运行一些库中更强大的函数来检查标签名称。 如果你想在这个页面上testing它,下面是一个例子。

 $("body > *").each(function() { if (this.tagName === "DIV") { alert("Yeah, this is a div"); } else { alert("Bummer, this isn't"); } }); 

检查这个元素是否是DIV

 if (this instanceof HTMLDivElement) { alert('this is a div'); } 

UL的HTMLUListElement一样,
HTMLQuoteElement for blockquote

尝试使用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 */ 

我正在加强Andreq Frenkel的回答,只是想补充一些,所以就这样变得太冗长了…

关于CustomElements的思考扩展了现有的,并且仍然能够检查一个元素是否是input ,这使得我认为instanceof是解决这个问题的最好方法。

但是应该知道, instanceof使用引用相等,所以父窗口的HTMLDivElement将不会与它的iframe (或者shadow DOM等)相同。

为了处理这种情况,应该使用checked元素自己的窗口类,如下所示:

element instanceof element.ownerDocument.defaultView.HTMLDivElement