Get element type with jQuery
Is it possible, using jQuery, to find out the type of an element with jQuery? For example, is the element a div, span, select, or input?
For example, if I am trying to load values into a drop-down list with jQuery, but the same script can generate code into a set of radio buttons, could I create something like:
$('.trigger').live('click', function () {
var elementType = $(this).prev().attr(WHAT IS IT);
});
Given a drop-down list with a button next to it with the trigger class, my elementType
variable should return select
upon the button being pressed.
Solution 1:
Getting the element type the jQuery way:
var elementType = $(this).prev().prop('nodeName');
doing the same without jQuery
var elementType = this.previousSibling.nodeName;
Checking for specific element type:
var is_element_input = $(this).prev().is("input"); //true or false
Solution 2:
also you can use:
$("#elementId").get(0).tagName
Solution 3:
you should use tagName
property and attr('type')
for inputs
Solution 4:
As Distdev alluded to, you still need to differentiate the input type. That is to say,
$(this).prev().prop('tagName');
will tell you input
, but that doesn't differentiate between checkbox/text/radio. If it's an input, you can then use
$('#elementId').attr('type');
to tell you checkbox/text/radio, so you know what kind of control it is.
Solution 5:
you can use .is()
:
$( "ul" ).click(function( event ) {
var target = $( event.target );
if ( target.is( "li" ) ) {
target.css( "background-color", "red" );
}
});
see source