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半天没搞懂,请指点,谢谢!