2012-05-28 40 views
4

我想知道jQuery对象的标记名的标签名,我想:访问jQuery对象

var obj = $("<div></div>"); 
    alert($(obj).attr("tagName")); 

该警报显示我undefined。我在做什么错?

+0

不要忘了jQuery对象是集合,因此它们可以包装一个或多个DOM元素,文本节点等。 – hippietrail

回答

8

tagName是底层的DOM元素,而不是一个属性的属性,所以你可以使用prop,这是一种用于访问/修改属性jQuery的方法:

alert($(obj).prop('tagName')); 

更好,但是,是直接访问DOM属性:

alert(obj[0].tagName); 
+0

'prop'的特殊+1。 – VisioN

2

您需要访问底层DOM节点,如jQuery的对象没有一个tagName属性,tagName不是属性,而不是一个属性:

var obj = $("<div></div>"); 
alert(obj[0].tagName); 

请注意,我还删除了在第二行调用jQuery,因为obj已经是jQuery对象。

1

tagName是本地DOM元素属性,它不是jQuery本身的一部分。考虑到这一点,使用$()[0]从jQuery选择得到的DOM元素,像这样:

var obj = $("<div></div>"); 
alert(obj[0].tagName); 

Example fiddle