$('img:has(float)')... geht nicht
Timo Schaffert
- javascript
0 Gunnar Bittersmann0 Timo
Hallo,
Ich benutze Joomla und da klappt das ja wunderbar wenn man den Bilder die Eigenschaft "Links" oder "Rechts" mit gibt. Sie bekommen dann den style="float: left;" oder style="float: right;"
Wie Selektiere ich mit Jquery nun Alle float:lefts und alle float:rights um diesen eine weitere CSS-Klasse hinzuzufügen?
Um zu testen habe ich erstmal mit hide(); herum probiert, so sehe ich sofort welche bilder Jquery gematched hat.
$('img:has(float)').hide();
aber ich komm nicht auf die richtige Syntax....
I need help!
Thanks!
Timo
@@Timo Schaffert:
nuqneH
Wie Selektiere ich mit Jquery nun Alle float:lefts und alle float:rights um diesen eine weitere CSS-Klasse hinzuzufügen?
Was ist dein Problem, das du damit zu lösen gedenkst?
Es gibt keine „CSS-Klassen“. Klassen sind ein Konzept, um gleichartige Elemente im Markup zu klassifizieren. Also ein HTML-Konzept.
Eine mögliche Verwendung sind gemeinsame Stilangaben für diese Elemente per CSS-Klassenselektor.
Qapla'
Och Leute...
Ich möchte nicht jedes Bild einzeln anklicken im CMS und händisch die CSS-KLASSE zuweisen. Das soll jQuery für mich machen wenn es erkennt das da ein float vorhanden ist. Je nach dem ob left oder right soll die Klasse .flpd_left oder flpd_right zugewiesen werden. In der CSS-KLASSE steht nichts anderes als ein padding-right: 5px; oder padding-left: 5px;
Warum ist das hier immer so wichtig alles erklären zu müssen bevor man Hilfe bekommt?
Timo
@@Timo:
nuqneH
Ich möchte nicht jedes Bild einzeln anklicken im CMS und händisch die CSS-KLASSE zuweisen.
Nochmal: Was ist dein Problem, das du damit zu lösen gedenkst?
Und nochmal: Es gibt keine „CSS-Klassen“.
Warum ist das hier immer so wichtig alles erklären zu müssen bevor man Hilfe bekommt?
Damit du die passende Hilfe bekommst.
Qapla'
Nochmal: Was ist dein Problem, das du damit zu lösen gedenkst?
:}
Ich würde gerne wissen wie ich alle IMG-Tags die den
style="float: left"; oder
style="float: right";
tragen Manipulieren kann.
Das genaue HTML sieht wie folgt aus:
<img border="0" style="float: left;" src="..." ilo-full-src="..." alt="...">
Alle meine Versuche sind gescheitert.
Versuche waren zB:
$("img[style=float:'left';]")
$('img:has(float)')
Timo
@@Tiimo:
nuqneH
Nochmal: Was ist dein Problem, das du damit zu lösen gedenkst?
:}Ich würde gerne wissen wie ich alle IMG-Tags […]
„Aber »Tags« klingt doch cooler? Nein.“ [Meiert]
[…] die den
style="float: left"; oder
style="float: right";
tragen Manipulieren kann.
Du begreifst es nicht, oder?
Was ist dein EIGENTLICHES Problem? WARUM willst du die 'img'-Elemente per JavaScript manipulieren? WAS willst du erreichen?
Qapla'
Hallo nochmal,
Ich würde gerne wissen wie ich alle IMG-Tags […]
„Aber »Tags« klingt doch cooler? Nein.“ [Meiert]
Habe ich das gesagt? Ich habe nur "daher geredet" Ich meine natürlich Das IMG-Element, sorry...
[…] die den
style="float: left"; oder
style="float: right";
tragen Manipulieren kann.Du begreifst es nicht, oder?
Ich bitte dich Gunnar, könnten wir vielleicht mal auf mein Problem Technisch eingehen??
Was ist dein EIGENTLICHES Problem? WARUM willst du die 'img'-Elemente per JavaScript manipulieren? WAS willst du erreichen?
Über das CMS Joomla habe ich eine Reihe von Bildern Links ausgerichtet. Das hat zur folge, dass alle Bildern das CSS im HTML style="float: left;" gespeichert haben. Soweit so gut. Ich möchte das genau bei diesen Bildern, die ich links ausgerichtet habe außerdem ein padding (je nach dem right oder left) hinzugefügt wird. Das möchte ich aber nicht händisch machen, weil:
1. Ich jeweils den blöden HTML-Editor von Joomla öffnen muss.
2. Wenn zB ein Kunde am Bild was verstellt diese Information aus versehen entfernt werden könnte.
Daher war es von mir eine über aus gute Idee, den IMG-Elementen bei denen float vorkommt die Stilangabe über Jquery-Manipulation nachträglich hinzuzufügen.
Timo
@@Timo:
nuqneH
Ich bitte dich Gunnar, könnten wir vielleicht mal auf mein Problem Technisch eingehen??
Sobald eine Problembeschreibung (keine Symptombekämpfungsbeschreibung) deinerseits vorliegt, gern.
Was ist dein EIGENTLICHES Problem? WARUM willst du die 'img'-Elemente per JavaScript manipulieren? WAS willst du erreichen?
Über das CMS Joomla habe ich eine Reihe von Bildern Links ausgerichtet. Das hat zur folge, dass alle Bildern das CSS im HTML style="float: left;" gespeichert haben. Soweit so gut.
Nein, soweit so schlecht. Inline-Styles sind (fast) nie gut. Niemals.
Hättest du nicht @style="float: left;" ins Markup geschmiert, sondern @class="picture-left" geschrieben, hättest du dein Problem gar nicht. Am besten, du korrigierst das.
Sollte dies nachträglich nicht möglich sein, stelle dir die Frage: Warum nicht?
Sollte dies immer noch nicht möglich sein, wäre das dennoch im Stylesheet zu korrigieren, nicht per JavaScript. Wozu gibt es denn Attributselektoren?
Allerdings stößt man bei [style]
auf Schwierigkeiten: Zugriff auf CSS-direktformatierte Elemente. Dennoch sollte dieser Weg gangbar sein und gegangen werden.
Qapla'
Sollte dies nachträglich nicht möglich sein, stelle dir die Frage: Warum nicht?
Weil Joomla das eben so macht.
Sollte dies immer noch nicht möglich sein, wäre das dennoch im Stylesheet zu korrigieren, nicht per JavaScript. Wozu gibt es denn Attributselektoren?
Ja ist ja gut... Ist klar..
Wie kann ich bei Joomla das ändern, dann schreibe ich das auch gerne um!
Andernfalls habe ich die Lösung mittlerweile gefunden:
// Erstmal alle Bilder selektieren
$('img').each(function(){
// Hier prüfen wir dann, ob es ein float hat
if($(this).css('float') == 'left' || $(this).css('float') == 'right'){
// Hier ist dann der Code was passieren soll
}
});
... aber trotzdem Danke für die Diskussion ;-)
[/CLOSE]