Get selected element type

I want to get the type of element, that I've got selected using jQuery selectors.

Markup:

<select name="a"></select>
<input name="b" type="text" />
<textarea name="c"></textarea>

Javascript:

var field_names = new Array(
    'a',
    'b',
    'c'
);

for(var i = 0; i < field_names.length; i++) {
    var field = $('[name=' + required_fields[i] + ']:visible');

    // ?????
    // What do I write here to get one of those outputs:
    //    Element with name a is <select>
    //    Element with name b is <input>
    //    Element with name c is <textarea>

    alert('Element with name ' + required_fields[i] + ' is ' + element_type);
}

Solution 1:

Simple:

var element_type = '<' + field.get(0).tagName.toLowerCase() + '>';

In a nutshell, this retrieves the DOM element associated with field and gets its tag name via the tagName attribute inherited from DOMElement, then transforms the result to lowercase using String's toLowerCase() method. Some browsers will return the tagName in uppercase, so for consistency you should transform it to lower case.

Solution 2:

Use the DOM element's tagName property:

var element_type = field[0].tagName;

Note that browsers are not entirely consistent about the case returned by tagName, so you should probably call toLowerCase to be safe: field[0].tagName.toLowerCase().