Antworten auf deine Fragen:
Neues Thema erstellen

jQuery find element based on its style

Hi @all,

folgendes versuche ich:
Drei <p>-Tags haben den Hintergrund "blue", eines der <p>-Tags bekommt jedoch direkt im HTML mit style einen grünen background zugewiesen. Mit einem jQuery-Script soll nun dieses <p>-Element mit grünem Hintergrund ausgelesen werden und der Hintergrund zu orange gewechselt werden.
Code:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Find Elements based on its style</title>
    <script  type="text/javascript"
    src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js">
    </script>
    <style type="text/css">
    p{
        width:50px;
        height:50px;
        background:blue;    
    }
    </style>
</head>
<body>
    <div>       
        <p style="background:green;"></p>
        <p></p>
        <p></p>
    </div>
    <script type="text/javascript">
         $(document).ready(function(e) {
            if($('div > p').css('background') == "green"){
                $('div > p').css("background", "orange");    
            }
        });
    </script>
</body>
</html>
Leider wird dies nicht gesetzt und auch im Fireburg ist kein Fehler erkennbar.

Could somebody please help me 2 solve the prob? :)
 

Duddle

Posting-Frequenz: 14µHz

AW: jQuery find element based on its style

Du machst hier mehrere Fehler: das background-Attribut vereint alle CSS-Angaben zum Hintergrund. Gibst du dir das im Firebug aus (console.log() usw.), steht dort "green none repeat scroll 0% 0%" drin. Deshalb bringt die einfache Abfrage nach "green" auch nichts. Entweder musst du also backgroundColor abrufen oder innerhalb des Ergebnis-Strings mit JavaScripts indexOf() nach "green" suchen.

Weiterhin weist du der ganzen Kollektion im if-Block den neuen Stil zu. Du willst aber nur ein bestimmtes Element verändern, also musst du das entweder gescheit selektieren (hier wäre eine Klasse besser, alternativ per Index) oder die Kollektion mit .each() durchgehen und darin $(this) ansprechen.

Als letzter Hinweis sei gesagt, dass jQuery mittlerweile bei Version 1.9.1 ist und es kaum einen Grund geben sollte weiterhin mit 1.4.2 zu arbeiten.


Duddle
 

teste123

Aktives Mitglied

AW: jQuery find element based on its style

Du machst hier mehrere Fehler: das background-Attribut vereint alle CSS-Angaben zum Hintergrund. Gibst du dir das im Firebug aus (console.log() usw.), steht dort "green none repeat scroll 0% 0%" drin. Deshalb bringt die einfache Abfrage nach "green" auch nichts. Entweder musst du also backgroundColor abrufen oder innerhalb des Ergebnis-Strings mit JavaScripts indexOf() nach "green" suchen.

Weiterhin weist du der ganzen Kollektion im if-Block den neuen Stil zu. Du willst aber nur ein bestimmtes Element verändern, also musst du das entweder gescheit selektieren (hier wäre eine Klasse besser, alternativ per Index) oder die Kollektion mit .each() durchgehen und darin $(this) ansprechen.

Als letzter Hinweis sei gesagt, dass jQuery mittlerweile bei Version 1.9.1 ist und es kaum einen Grund geben sollte weiterhin mit 1.4.2 zu arbeiten.


Duddle
Hallo zusammen
ist das das Programm kostenloserr Version?
Danke
MfG
 

Myhar

Hat es drauf

AW: jQuery find element based on its style

jQuery ist kostenlos, also ist auch Version 1.9 kostenlos. Oder meintest du etwas anderes?
 
AW: jQuery find element based on its style

Du machst hier mehrere Fehler: das background-Attribut vereint alle CSS-Angaben zum Hintergrund. Gibst du dir das im Firebug aus (console.log() usw.), steht dort "green none repeat scroll 0% 0%" drin. Deshalb bringt die einfache Abfrage nach "green" auch nichts. Entweder musst du also backgroundColor abrufen oder innerhalb des Ergebnis-Strings mit JavaScripts indexOf() nach "green" suchen.

Weiterhin weist du der ganzen Kollektion im if-Block den neuen Stil zu. Du willst aber nur ein bestimmtes Element verändern, also musst du das entweder gescheit selektieren (hier wäre eine Klasse besser, alternativ per Index) oder die Kollektion mit .each() durchgehen und darin $(this) ansprechen.
Als letzter Hinweis sei gesagt, dass jQuery mittlerweile bei Version 1.9.1 ist und es kaum einen Grund geben sollte weiterhin mit 1.4.2 zu arbeiten.


Duddle
Der Meister hat gesprochen! Danke duddle, wie immer eine Hilfe :)
Ps: das ich statt Background Background-Color nehmen sollte war mir bewusst, doch machte das aus Grund zwei auch nicht das was ich wollte deswegen nahm ich Background :) Ich habe es Gott sei Dank schon vor deinem Post mit each gelöst

Cheers!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.451
Mitglieder
67.557
Neuestes Mitglied
Charal
Oben