62 votes

Obtenir le type d'élément sélectionné

Je veux obtenir le type d'élément que j'ai sélectionné à l'aide des sélecteurs jQuery.

Balisage :

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

97voto

lonesomeday Points 95456

Utilisez la propriété tagName l'élément DOM :

 var element_type = field[0].tagName;

Notez que les navigateurs ne sont pas entièrement cohérents quant à la casse renvoyée par tagName , vous devriez donc probablement appeler toLowerCase par sécurité : field[0].tagName.toLowerCase() .

83voto

Jacob Relkin Points 90729

Simple:

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

En résumé, cela récupère l'élément DOM associé à field et obtient son nom de balise via l' tagName hérité de DOMElement , puis transforme le résultat en minuscule en utilisant La méthode String de toLowerCase() Certains navigateurs renverront le tagName en majuscule, donc par souci de cohérence, vous devez le transformer en minuscule.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X