2010-01-10 28 views
7

Gibt es eine Möglichkeit, die Liste der Attribute zu erhalten, die auf ein Element gesetzt sind?jQuery alle HTML-Attribute erhalten

Beispiel:

<div id="myID" title="I am Title" myAttr="I am something else">Hello World!!!</div> 

Gibt es einen Weg, um alle oben genannten Attribute zu bekommen?

versuchte ich dies schon, aber bisher nichts:

$('#myID').attr(); 

Ich habe versucht, dies auch:

$('#myID').attr().each(function(a,b){ 
    alert(a); 
}); 

auch nicht geholfen hat ... so würde irgendwelche Vorschläge geschätzt.

danke.

Antwort

3
+0

i wie Addons wirklich nicht/plugins ... es wäre mein letztes Ergebnis sein ... Ich habe das schon gesehen, aber danke – Val

+3

Dann schau dir den Code des Plugins an, um zu sehen, wie es gemacht wird, oder? –

+2

@ JanHančič Die Verbindung ist tot. –

2

Sie können die DOM attributes Eigenschaft auf dem zugrunde liegenden jQuery Element verwenden, um eine NamedNodeMap zu extrahieren alle des Elements Attribute enthält. Dies kann schnell in ein Objekt geparst werden, das direkt an .attr() übergeben werden kann.

var attrs = {}; 
var attrMap = $('#myID')[0].attributes; 
$.each(attrMap, function(i,e) { attrs[e.nodeName] = e.nodeValue; }); 

attrs ist jetzt:

{id: "myID", title: "I am Title", myattr: "I am something else"} 

Hier ist ein jsfiddle, das zeigt, wie das funktioniert: http://jsfiddle.net/joemaller/cDYtr/