jQuery有没有任何函数可以确定由jQuery对象引用的DOM元素的标记类型?

11
jQuery有没有函数来确定jQuery对象所引用的DOM元素的标签类型?我正在编写一个jQuery插件...
jQuery.fn.myPlugin() {
    return this.each(function() {
       var $this = $(this);
       // <---------------------------------------HERE!
    });
}

我想知道this是一个<input>元素还是一个<div>元素,而不直接使用DOM。

4个回答

9
做这个:
this.nodeName;

...或者为了安全起见,将其转换为特定的大小写:

this.nodeName.toLowerCase();

nodeName属性是一种被广泛支持的属性,它将在元素节点(如您的情况)中给出标签名称。


1
为什么 nodeNametagName 更好的一个很好的链接。 - David Tang
@Box9:我本来想把quirksmode关于tagName的那个注释粘贴到答案中,但是我觉得还是不要了。不过没错,nodeName才是正解。:o) - user113716

3
为什么不直接使用DOM呢?既然你已经有一个DOM对象在手,我认为直接使用它即可。如果你只有jQuery对象,可以这样实现:
$this.attr("tagName") == "DIV"

或者

$this.is("div")

但其实没有必要这样做。

我认为通过attr访问tagName是jQuery消除属性和特性之间区别的副作用,不应该依赖它。 - Anurag

1

0
应用方法prop("tagName")来获取HTML元素的标签名称,例如:
$this.prop("tagName");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接