2011-05-24 62 views
34
e.g. if i have this: 
<div id='mydiv'>whatever</div> 

然后让我说,在jQuery中,我怎么能发现id为“mydiv”的dom元素是DIV还是一些其他元素类型。什么类型的DOM元素?

e.g. 
$('#mydiv').???? ? 

回答

48
var type = $('#mydiv')[0].tagName 

alert(type); 
//displays "DIV" 
+0

在Chrome中显示为“1”。不知道其他浏览器... – Shaz 2011-05-24 17:59:15

+1

确实,tagName是正确的属性。 – 2011-05-24 18:01:03

+5

'tagName' vs'nodeName':http://bit.ly/16X3oBL – Shaz 2013-05-23 23:05:16

45

尝试is哪些测试,如果在给定的任何其他选择匹配:

if($('#mydiv').is('div')){ 
    // it's a div 
} 

您也可以在标签是这样的:

$('#mydiv').get(0).tagName // yields: 'DIV' 
+1

这比'[0] .tagName ===“DIV”'更清洁。 – Mijago 2017-01-23 09:41:22

1

$('#mydiv').get(0).nodeType如果你知道,只有一个元素。选择器对象可以包含一个对象数组。

.get()返回DOM对象数组,参数索引。 nodeType是DOM公开的属性,它告诉你DOM节点的类型是什么。通常作为所有大写IIRC中的字符串。

更正nodeType给你一个对应于nodeType的INT。 tagName是你想要的。

+2

+1 - 还有下标运算符:'$('#mydiv')[0] .nodeType'和tagName:'$('#mydiv')[0] .tagName' – karim79 2011-05-24 17:57:19

+0

+1代表tagName。忘了nodeType吐出一个int。 – 2011-05-24 17:59:05

1
var domElement = $('#mydiv').get(0); 
alert(domElement .tagName); 

可能有用。

5
alert($('#mydiv')[0].nodeName); 
+1

+1 – user113716 2011-05-24 18:01:28

2

.prop()功能是这样做的一个很好的方式。

// Very jQuery 
$('#mydiv').prop('tagName'); 

// Less jQuery 
$('#mydiv')[0].tagName; 

两者都给出相同的结果。

而且,正如Aram Kocharyan评论的那样,您可能需要使用.toLowerCase()来标准化它。

相关问题