2011-01-18 33 views
30

Quiero obtener el tipo de elemento que he seleccionado utilizando los selectores de jQuery.Obtener elemento seleccionado tipo

de marcado:

<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); 
} 

Respuesta

50

simple:

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

En pocas palabras, este recupera el elemento DOM asociado con field y obtiene su nombre de la etiqueta a través del atributo tagName heredado de DOMElement, a continuación, se transforma el resultado a minúsculas usando String 's toLowerCase() método . Algunos navegadores devolverán el tagName en mayúsculas, por lo que, para mayor coherencia, conviene transformarlo en minúsculas.

39

Uso tagName la propiedad del elemento DOM:

var element_type = field[0].tagName; 

Nota que los navegadores no son totalmente coherentes sobre el caso devuelto por tagName, así que probablemente deberías llamar al toLowerCase para estar seguro: field[0].tagName.toLowerCase().

+0

¡Muchas gracias por vincular a cierta documentación! – calvin

Cuestiones relacionadas