Is there an easy way to get a tag name?
For example, if I am given $('a')
into a function, I want to get 'a'
.
This question is related to
javascript
jquery
jquery-selectors
You should NOT use jQuery('selector').attr("tagName").toLowerCase()
, because it only works in older versions of Jquery.
You could use $('selector').prop("tagName").toLowerCase()
if you're certain that you're using a version of jQuery thats >= version 1.6.
You may think that EVERYONE is using jQuery 1.10+ or something by now (January 2016), but unfortunately that isn't really the case. For example, many people today are still using Drupal 7, and every official release of Drupal 7 to this day includes jQuery 1.4.4 by default.
So if do not know for certain if your project will be using jQuery 1.6+, consider using one of the options that work for ALL versions of jQuery :
Option 1 :
jQuery('selector')[0].tagName.toLowerCase()
Option 2
jQuery('selector')[0].nodeName.toLowerCase()
This is yet another way:
$('selector')[0].tagName
You can use the DOM's nodeName
property:
$(...)[0].nodeName
nodeName will give you the tag name in uppercase, while localName will give you the lower case.
$("yourelement")[0].localName
will give you : yourelement instead of YOURELEMENT
jQuery 1.6+
jQuery('selector').prop("tagName").toLowerCase()
Older versions
jQuery('selector').attr("tagName").toLowerCase()
toLowerCase() is not mandatory.
Source: Stackoverflow.com