2010-08-06 6 views
2

suivant est mon HTMLélément Get attributs à l'aide jQuery

HTML:

<div Attr1 = "val1" Attr2 = "val2" Attr3 = "val3" > 
     Hello !! 
</div> 

Je veux extraire tous les attributs (& son correspondant values) d'un élément. Comment puis-je faire cela en utilisant jQuery?

J'ai essayé quelque chose comme ci-dessous,

$(function() { 
    for(var i in $('div')[0].attributes) { 
    console.log($('div')[0].attributes)[i] , $('div')[0].attributes)[i].value); 
    } 
}); 

Existe-t-il des moyens plus possibles pour ce faire?

+1

double: Je pense que vous cherchez Enumérer les attributs élément avec jQuery - http://stackoverflow.com/questions/2224933/iterating-over-element -attributes-with-jquery –

+0

Aussi, en supposant qu'il ne s'agisse pas seulement d'exemples, votre HTML ne validera pas car ce ne sont pas des attributs valides, ce qui est déconseillé. Si vous avez vraiment besoin de ces attributs 'Attr1',' Attr2', 'Attr3', regardez dans les' 'data-' 'HTML5: http://html5doctor.com/html5-custom-data-attributes/ –

+0

@Richard Ces attributs sont' t l'attribut réel, je suis d'accord avec vous, ceux qui ne sont pas valables. Ici, je veux exprimer ma Question, donc j'ai utilisé un "attr's" factice. son idiot ?? –

Répondre

0

Vous recherchez getAttributes Plugin jQuery.

Un simple et de petite taille (490 octets minified) plug-in pour récupérer tous les attributs d'un élément (utile si vous devez travailler avec des balises que vous ne contrôlaient pas). Elle retourne un objet qui peut être utilisé comme argument à .attr()

Exemple:

console.log($.getAttributes('div'), true); 

Update:

From jQuery Docs:

Chaque fois que vous utilisez la méthode each de jQuery, , le contexte de votre rappel est défini sur un élément DOM. C'est également le cas pour les gestionnaires d'événements.

qui signifie que vous pouvez faire:

var attrs = $("div")[0].attributes; 

for(var i = 0; i < attrs.length; i++) { 
    alert(attrs[i].nodeName + " => " + attrs[i].nodeValue); 
} 
+0

Merci pour le lien, mais je ne suis pas prêt à le faire en utilisant un plugin. Y a-t-il d'autres moyens? –

+1

Pourquoi ne voudriez-vous pas utiliser un plugin? À tout le moins, ouvrez le plugin et voyez comment ils l'ont fait. – Soviut

+0

@Avinash: Voir ma mise à jour s'il vous plaît. – Sarfraz