Jquery - 查找 $(this) 是啥元素 [重复]

Posted

技术标签:

【中文标题】Jquery - 查找 $(this) 是啥元素 [重复]【英文标题】:Jquery - Finding what element $(this) is [duplicate]Jquery - 查找 $(this) 是什么元素 [重复] 【发布时间】:2011-01-20 19:18:05 【问题描述】:

可能重复:Can jQuery provide the tag name?

嗨!

这个问题太简单了,我很惭愧地问,但我试图找到答案 30 分钟没有任何结果。

如何在下面的代码中找出点击了什么样的元素。

$('*').click(function (event) 
 var this_element = $(this).???;
 return false;
)

我正在寻找的是将 this_element 变量设置为'a'如果它是一个链接,'p'如果它是一个段落'div'如果......

谢谢!

【问题讨论】:

参见:***.com/questions/341900/… 和 ***.com/questions/1532331/… 和 ***.com/questions/1864151/… ... 顺便说一句,应该包含event.stopPropagation(); 以阻止您的点击无缘无故地传递给父元素。请参阅 api 文档:api.jquery.com/get @ghoppe - jQuery 事件句柄中的 return false; .stopPropagation().preventDefault() 啊,没想到!谢谢@gnarf。 【参考方案1】:

试试这个:

$('*').click(function (event) 
    var this_element = this.tagName.toLowerCase();
    return false;
);

this 指针指的是被操作的实际元素。作为 DOM Level 2 核心的一部分,所有 DOM 元素都有一个名为 .tagName 的属性。

【讨论】:

确保.toLowerCase() 一些浏览器实现了.tagName 的全部大写,而其他浏览器则没有。 这真的取决于你对标签名称所做的事情。可能没关系。但公平地说,我会做出改变。【参考方案2】:
$(this).get(0).tagName;

【讨论】:

嗯,-1 是为了什么?它有效:jsbin.com/akohe/edit 不要,但这有点多余 - $(this).get(0) 应该始终等于 this 仅在这种特定情况下为真(单击一个元素)。 $(this) 可能包含多个 DOM 元素…… 好吧,当然...如果this 恰好是一个选择器字符串,或者一个元素数组,或者诸如此类。但这与 this 问题并不真正相关。 当我使用这个时,我只是得到未定义的值

以上是关于Jquery - 查找 $(this) 是啥元素 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

$(this).next().is(':visible') 刚接触jquery者句代码是啥意思啊,看了api半天没搞懂,请指点,谢谢!

jQuery 选择器,用于查找与选择器匹配的给定元素之后的第一个元素

jQuery 仅在 DOM 中单击时查找下一个表单元素

js和jquery的区别是啥?

最近的一些零碎知识点,jquery遍历

jQuery语法