2016-08-05 11 views
1

Ich muss einige Attribute entfernen und einige aus einer Liste von Knoten erhalten. Zum Beispiel gibt es eine Liste von img Elementen und Sie brauchen nur src und alt Attribute, gibt es eine Möglichkeit, durch Attribute von Elementen in einer gegebenen Liste zu durchlaufen?Durchlaufen Attribute mit DOM-Methoden?

<img src="" alt="" height="" width="" class="class1"> 
<img src="" alt="" height="" width="" class="class2"> 
<img src="" alt="" height="" width="" class="class3"> 
<img src="" alt="" height="" width="" class="class4"> 
<img src="" alt="" height="" width="" class="class5"> 
<img src="" alt="" height="" width="" class="class6"> 
<img src="" alt="" height="" width="" class="class7"> 
<img src="" alt="" height="" width="" class="class8"> 
<img src="" alt="" height="" width="" class="class9"> 
<img src="" alt="" height="" width="" class="class10"> 

<img src="" alt=""> 
<img src="" alt=""> 
<img src="" alt=""> 
<img src="" alt=""> 
<img src="" alt=""> 
<img src="" alt=""> 
<img src="" alt=""> 
<img src="" alt=""> 
<img src="" alt=""> 
<img src="" alt=""> 
+0

Ist der bereitgestellten Code die beiden Teile, dh die Verwendung von Zuerst blockiere was existiert und die zweite das gewünschte Ergebnis? Vielleicht ist der erste Block die "gegebene Liste". Die Verwendung von Element-IDs könnte vorteilhaft sein (z. B. wenn diese in einem DIV waren), dann könnten Sie das DIV-Element und die Schleife durch die Kindknoten erhalten. z.B. 'c = document.getElementById (AC_ChildDiv); \t \t for (i = 0; i MikeT

+0

Willkommen bei Stackoverflow! Stellen Sie weitere Informationen zu [machen Sie dies zu einer besseren Frage] (http://stackoverflow.com/help/how-to-ask): Listen Sie, was Sie versucht haben, recherchieren Sie dies im Internet, und sagen Sie uns, während die offensichtlichen Lösungen don arbeite nicht. Eine schnelle Google-Suche würde die Methode [jquery.removeAttr()] (https://api.jquery.com/removeAttr/) auf den Markt bringen, die dafür perfekt geeignet scheint. – emunsing

Antwort

3

Sie über die Attribute für jedes Element laufen kann, überprüfen Sie den Namen des Attributs agains eine Positivliste, und entfernen Sie alles andere removeAttribute()

var images = document.querySelectorAll('img'); 

for (var i = images.length; i--;) { 
    for (var j = images[i].attributes.length; j--;) { 

     var attribute = images[i].attributes[j]; 

     if (['src', 'alt'].indexOf(attribute.name) === -1) { 
      images[i].removeAttribute(attribute.name); 
     } 

    } 
} 
Verwandte Themen