如何在jquery中获取当前选定元素的标记名[重复]
Posted
技术标签:
【中文标题】如何在jquery中获取当前选定元素的标记名[重复]【英文标题】:How to get tagname of the current selected element in jquery [duplicate] 【发布时间】:2014-01-09 07:45:07 【问题描述】:我使用$('[attribute]')
来选择 html 节点。当我使用节点时,很高兴知道选择了哪个 html 元素。
伪代码:
$('body').on('click', '[action]', function()
var htmlElementName = this.name;
if(htmlElementName == 'form')
return;
//do stuff
);
【问题讨论】:
【参考方案1】:只需获取tagName
属性的值:
var htmlElementName = this.tagName;
参考: https://developer.mozilla.org/en-US/docs/Web/API/Element.tagName
【讨论】:
【参考方案2】:根据标题,特别是在 jQuery 中
$(this).prop('tagName');
原生版本似乎更简单
this.tagName
请注意,大小写可能会有所不同,因此使用 toLowerCase() 通常是个好主意
【讨论】:
根据MDN,情况仅对 HTML 和 XML 有所不同:“在 XHTML(或任何其他 XML 格式)中,“span”将被警告。在 HTML 中,“SPAN”而是会收到警报。”。因此,如果 OP 使用正确的 HTML 文档,则应返回大写的名称。 @VisioN - 这就是它可能会有所不同的原因,我总是链接 toLowerCase() 以避免出现问题,因为我永远记不起它什么时候是小写,什么时候是大写。 有趣的是你不使用toUpperCase()
而不是;)
@VisioN - 实际上,我已经创建了自己的自定义 toCamelCase()
,我使用了 ;)
顺便说一句,你知道jQuery has its own implementation 的toCamelCase
吗?【参考方案3】:
您可以使用this.tagName
$('body').on('click', '[action]', function()
var htmlElementName = this.name;
var tagName = this.tagName;
if(htmlElementName == 'form')
return;
//do stuff
);
【讨论】:
你看它太简单了,我找不到这个。我尝试了标记名、名称、元素名和节点名。只是忘了大写! 是的,它有时会发生,这就是javascript区分大小写的原因。【参考方案4】:试试这个:
$('body').on('click', '[action]', function(e)
var htmlElementName = $(this).prop("tagName");
);
【讨论】:
以上是关于如何在jquery中获取当前选定元素的标记名[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在javascript变量中获取jquery select2选定值[重复]
jQuery UI 选项卡 - 如何获取当前选定的选项卡索引