如何在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 选项卡 - 如何获取当前选定的选项卡索引

如何使用 jquery 从 asp.net 列表框中仅获取当前选定的选项

Jquery中选定元素的边框[重复]

如何使用 jquery 遍历 HTML 页面的所有选定元素

在jQuery中获取所有选定复选框值的最佳方法[重复]