Quiero obtener el tipo de elemento que he seleccionado usando los selectores de jQuery.
Margen:
<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); }
Sencillo:
var element_type = '<' + field.get(0).tagName.toLowerCase() + '>';
En pocas palabras, esto recupera el elemento DOM asociado con field
y obtiene su nombre de etiqueta a través del atributo tagName
heredado de DOMElement
, luego transforma el resultado a minúsculas usando el método toLowerCase()
de String
. Algunos navegadores devolverán el tagName
en mayúsculas, por lo que, para mantener la coherencia, debe transformarlo a minúsculas.
Usa la propiedad tagName
del elemento DOM:
var element_type = field[0].tagName;
Tenga en cuenta que los navegadores no son del todo coherentes con respecto a las mayúsculas y minúsculas devueltas por tagName
, por lo que probablemente debería llamar a toLowerCase
para estar seguro: field[0].tagName.toLowerCase()
.