2010-07-13 4 views
2

Juste, imbécile à venir. J'ai fait une recherche, mais je ne trouve pas la bonne solution.Comment obtenir le type d'un élément. JavaScript/jQuery

J'ai un sélecteur jQuery en sélectionnant une classe, peut-être un ID, en fait ce pourrait être n'importe quoi, ce sélecteur est introduit dans une fonction que je programme.

Je dois être en mesure de déterminer le type de chaque élément adapté, par exemple:

<div class="target"></div> 

reviendriez div et

<input class="target" /> 

reviendriez entrée, simple droit?

Eh bien, vous l'auriez pensé, mais je n'arrive pas à trouver la solution.

Toute aide serait grandement appréciée :-)

Répondre

4

Vous devez obtenir l'élément DOM sous-jacent et accéder à la propriété tagName. Par exemple,

alert($("#target").get(0).tagName); 
// -> DIV 

Soyez conscient du fait que les navigateurs renverront le nom de la balise en majuscules, donc quelque chose comme ça vous ferait un peu de chagrin:

if ($("#target").get(0).tagName == "div") { alert("DIV!"); } 
+1

C'est le seul, j'essayais d'utiliser 'tagName' directement sur le sélecteur, sans utiliser' .get (0) '. Merci beaucoup! : D –

0

essayer:

$("yourelement").is("input") 

ou:

if ($(this).is('input:checkbox')) 

etc .... le cas échéant

+0

Merci pour votre réponse, je préférerais récupérer le type d'élément comme les autres l'ont montré, et le faire passer par une condition à partir de là :-) –

+0

pas de soucis - juste une autre des nombreuses façons de dépecer le chat jquery :) –

1
$.fn.tagName = function() { 
    return this.get(0).tagName; 
} 
alert($('#testElement').tagName()); 

Pour expliquer un peu plus pourquoi votre exemple original n'a pas fonctionné, la méthode each() retournera toujours l'objet jQuery (sauf si l'objet lui-même était jQuery modifié). Pour voir ce qui se passe dans chacun avec votre code, voici quelques pseudo-code qui montre comment l'each() méthode fonctionne:

Ce n'est pas comment chaque() devient vraiment mis en œuvre (par un long shot probablement), mais c'est pour montrer que la valeur de retour de votre fonction action() est ignorée.

+0

Merci pour votre réponse! +1 –

Questions connexes