我是JavaScript和JQuery的新手,我疯狂地试图检索代表标签的对象的标签名称。
这是我的 JQuery 脚本:
$(document).ready(function () {
$("thead.opening").click(function () {
alert("INTO FIRST FUNCTION !!!");
var theadElement = $(this);
var tbodyElement = $(this).next();
alert("THEAD TAG BEFORE: " + theadElement.tagName());
$(this).next().slideToggle('slow', function () {
$(this).prev("thead.opening").toggleClass("active");
$("thead.opening").find(".imgAccordion").attr("src", "img/arrow.gif");
$("thead.active").find(".imgAccordion").attr("src", "img/arrow_down.gif");
alert("THEAD TAG AFTER: " + theadElement.tagName());
});
return false;
});
正如您所看到的,当用户点击设置了CSS类开放的 thead 对象时会自动执行此操作,因此 $(this)应该将点击的 thead 元素表示到DOM中(我的推理是正确的还是我错过了什么?)。
所以我把这个元素引用放在 theadElement 变量中,在这一行:
var theadElement = $(this);
所以这个 theadElement 应该包含DOM中点击的thead的引用。
现在我想检索并打印与此元素相关联的标记( thead 标记),所以我尝试这样做:
alert("THEAD TAG BEFORE: " + theadElement.tagName());
但是,这样做,尝试执行此脚本崩溃并进入FireBug控制台,我收到此错误消息:
TypeError: theadElement.tagName is not a function
http://localhost:7001/wea-web/edi.do?serv=8.2
Line 32
为什么它不起作用?我错过了什么?如何检索与 theadElement 对象相关联的元素的标记名称?
TNX
答案 0 :(得分:4)
tagName是dom元素的属性而不是函数
alert("THEAD TAG BEFORE: " + this.tagName);
或者因为theadElement
是一个jQuery对象
alert("THEAD TAG BEFORE: " + theadElement.prop('tagName'));
或
alert("THEAD TAG AFTER: " + theadElement[0].tagName);