为什么我无法检索和打印在此JQuery脚本中从我的DOM中检索的元素的标记名称?

时间:2015-05-05 08:58:56

标签: javascript jquery html css dom

我是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

1 个答案:

答案 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);