2016-06-09 7 views
0

Als Beispiel lässt sich sagen, ich habe das folgende HTML-Setup.Holen Sie sich jedes Attribut und seinen Wert

<div class="element" data-xy-ko="value1" data-xy-ko2="value2"> 
    <span data-xy-ko="value3">testing</span> 
    <ul> 
    <li data-xy-ko="value4" data-xy-ko2="valu5">testing</li> 
    <li data-xy-ko="value5">tsjbd</li> 
    </ul> 
</div> 

Es gibt mehrere Datenattribute. Was einige Attribute gemeinsam haben, ist, dass sie mit data-xy-ko, data-xy-ko2 oder jede andere Kombination beginnen, solange sie mit data-xy-ko beginnen

FRAGE: Wie kann ich alle bekommen die Daten, dass Spiel-Attribute data-xy-ko und eine jede Schleife laufen jedes gefundene Attribut, in dem ich jeden Attributwert erhalten kann, Element, das es enthält, und andere Sachen für jedes gefundene tun.

BEARBEITEN Mehrere übereinstimmende Attribute können auf demselben Element gefunden werden.

Antwort

2

Sie jQuery verwenden könnten durch Attribut auszuwählen

$('[data-xy-ko]').each(function(i, e) { 
    var attributeValue = e.dataset.xyKo; 
    var elementContainingAttribute = e; 
    // Do other stuff for each one found 
}); 
+0

Wenn 2 oder mehr passende Attribute auf dem gleichen Element zu finden sind, wird es nur die Schleife für ein und das andere nicht laufen . So funktioniert diese Methode nicht – guub

+0

Wie würde ein Element mit zwei übereinstimmenden Attributen aussehen? – skalpin

+1

Ungültiger HTML ist, wie es aussehen würde :) – atheaos

0

Dies ist keine direkte Antwort, als ich den HTML-Code aus Ihrer Prämisse bin zu ändern, aber dies ist eine bessere Art und Weise zu handhaben, was Sie suchen zu erreichen , IMO. Ich würde es tun, wie folgt:

<div class="element" data-xy-ko="value1 value2"> 
    <span data-xy-ko="value3">testing</span> 
    <ul> 
    <li data-xy-ko="value4 value5">testing</li> 
    <li data-xy-ko="value5">tsjbd</li> 
    </ul> 
</div> 

Dann können Sie sagen:

var myValues = $(element).attr('data-xy-ko'); 
var valuesArray = myValues.split(" "); 
for(var i = 0; i < valuesArray.length; i++) { 
    switch(valuesArray[i]) { 
     case "value 1": 
      // do stuff 
      break; 
     case "value 2": 
      // do stuff 
      break; 
     case "value 3": 
      // do stuff 
      break; 
     ...etc... 
    } 
} 
Verwandte Themen