Basit
Basit

Reputation: 8606

How to find element type in JQuery

I have an array with different elements inside it. Like array contain input elements and select elements. I want to check for particular type. I tried this but it didn't work

var mandotaryElementsArray = $('.mandotary');

$.each(mandotaryElementsArray, function(index, element){

    if (element == input) {

        var $inputElement = $(this);
        var test1;

    } else if (element == select) {

        var $selectElement = $(this);
        var test2;

    }

}); //end of .each()

Actually i want to check something that is similar to instance of in Java. Here i want to check if element is type of input then do this, if element is type of select then do this, if element is type of radiobutton then do this.. How can i make this check here? Thanks

Upvotes: 0

Views: 13059

Answers (2)

jfriend00
jfriend00

Reputation: 707158

You can use either the .tagName property (which always returns uppercase for HTML):

$('.mandotary').each(function(index, element) {
    if (element.tagName == "INPUT") {
        // code here
    } else if (element.tagName == "SELECT") {
        // code here
    }
});

Or, you can use jQuery's .is():

$('.mandotary').each(function(index, element) {
    var $element = $(element);
    if ($element.is('input')) {
        // code here
    } else if ($element.is('select')) {
        // code here
    }
});

Even better would probably be to let the selector do all the work for you and just select the items you want for a particular operation and operate on the desired selector like this:

$('input.mandotary').hide();
$('select.mandotary').show();

Upvotes: 7

Blender
Blender

Reputation: 298076

Just use .is() to match the tag name:

if (element.is('input'))

But ideally rework the code and don't check for tag names in your loop.

Upvotes: 1

Related Questions