2012-03-27 9 views
0

Zugegeben Ich habe keine jQuery/js Wissen schließen, ich habe trotzdem ein kurzes Skript zu erstellen versucht: Wordpress gibt Bildklassen wie folgt:Conditional jQuery/js addClass Skript

<img class="alignleft" /> 
<a><img class="alignleft" /></a> 
<a><img class="alignright" /></a> 

Es nur Klassen hinzufügen für die Bild-Tags, nicht für den Container, was zu einigen Einschränkungen css Seite führt. Ich habe

daher versucht, ein Skript zu erstellen, das nach Bildern mit der Klasse "alignleft/right/none" sucht und dann procediert, um eine neue Klasse für das Tag hinzuzufügen.

Bisher habe ich es geschafft, das folgende Stück Code zusammen:

$(document).ready(function() { 
wp_image = $("div.article_contents a img"); 

if (wp_image.hasClass ("alignleft")) { 
    wp_image.parent().addClass ("wp_image alignleft") 
} 
else if (wp_image.hasClass ("alignright")) { 
    wp_image.parent().addClass ("wp_image alignright"); 
} 
else (wp_image.parent().addClass ("wp_image")) { 

} 
}); 

Die Probleme sind:

  • Die erste bedingte Anweisung (für die Alignleft) funktioniert, aber dann, wenn es kommt zu einem "alignright" Bild, beide "alignleft & alignright" Klassen werden erstellt.
  • Zweitens die letzte bedingte Anweisung, die es einen Fehler zurückgibt: wie ich erwartet habe, ist mein jQuery-Wissen nahe bei keiner und ich konnte keine andere Möglichkeit finden, es niederzuschreiben.

Antwort

0

versuchen, das ganze, wenn else-Anweisung mit diesem ersetzen:

if (wp_image.hasClass ("alignleft")) { 
    wp_image.parent().removeClass("alignright"); 
    wp_image.parent().addClass("alignleft") 
} 
else if (wp_image.hasClass ("alignright")) { 
    wp_image.parent().removeClass("alignleft"); 
    wp_image.parent().addClass("alignright"); 
} 
else{ 
    wp_image.parent().addClass("wp_image"); 
} 
+0

Nö, id, das Problem zu lösen scheint nicht, von meinem Code mit Ihnen die erste ersetzen '' richtig funktioniert, aber die Die folgenden (ein AlignRight und ein AlignNone) erhalten beide die '' Klasse. – Cerere