【发布时间】:2012-06-02 15:22:12
【问题描述】:
我想知道jquery对象的tagName,我试过了:
var obj = $("<div></div>");
alert($(obj).attr("tagName"));
此警报显示undefined。我在做什么错?
【问题讨论】:
-
别忘了jQuery对象是集合,所以它们可以包装一个或多个DOM元素、文本节点等
我想知道jquery对象的tagName,我试过了:
var obj = $("<div></div>");
alert($(obj).attr("tagName"));
此警报显示undefined。我在做什么错?
【问题讨论】:
您需要访问底层 DOM 节点,因为 jQuery 对象没有 tagName 属性,而 tagName 不是属性,不是属性:
var obj = $("<div></div>");
alert(obj[0].tagName);
请注意,我还在第二行删除了对 jQuery 的调用,因为 obj 已经是一个 jQuery 对象。
【讨论】:
tagName 是原生 DOM 元素属性,它不是 jQuery 本身的一部分。考虑到这一点,使用 $()[0] 从 jQuery 选择器中获取 DOM 元素,如下所示:
var obj = $("<div></div>");
alert(obj[0].tagName);
【讨论】:
tagName是底层DOM元素的属性,不是属性,所以可以使用prop,这是jQuery访问/修改属性的方法:
alert($(obj).prop('tagName'));
不过,更好的是直接访问 DOM 属性:
alert(obj[0].tagName);
【讨论】: