2017-10-25 2 views
0

Ich möchte Zeilenhintergrund und Schriftfarbe der Tabelle beim Start der Seite ändern. Wie geht das? Momentan hatte ich es nur im mouseout Event gemacht.Tabelle laden CSS beim Starten der Seite

$("#tableGrid").ready(function(){ 
 

 
}); 
 

 
$("#tableGrid").on("mouseout","tr", function() { 
 
    if($(this).children("td:eq(15)").text() == "CREATED") { 
 
    $(this).children("td").css('background', '#fffff9'); 
 
    $(this).children("td").css('color', '#000000'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='bal-main-conatiner bal-table booking-table' id="tableGrid"></div>

+0

Bitte fügen Sie Ihre ** HTML ** Code –

+0

ich nur 1 Zeile in meinem HTML-Code haben: – Jim

+1

Jim

Antwort

0

können Sie $(document).ready versuchen

$(document).ready(function(){ 
    // styling stuff goes here 
    // This function will be executed when the page is loaded 
}); 
+0

so etwas wie das? $ (Dokument) .ready (function() { if ($ (this) .children ("td: eq (15)"). Text() == "ERSTELLT") { $ (this) .children ("td"). css ('background', '# fffff9'); $ (this) .kinder ("td"). css ('color', '# 000000'); } }); – Jim

+0

Yup, und werfen Sie auch einen Blick auf die Antwort von @DanteTheSmith –

+0

Der Code überprüft nur den Text in der ersten Zeile meiner Tabelle. Wie wird jede Zeile in meiner Tabelle wiederholt? – Jim

0
window.onload = function(){ 
    //what you wanna 
} 

auslösen, wenn dom Elemente geladen werden.

Wenn Sie es so schnell wie möglich wollen, und wollen nicht alle Elemente laden (weil Sie Tonnen von DOM-Elementen haben können und es dauert lange, alle zu laden?) Sie können etwas wie gehen:

function myFunc() { 
    if (document.getElementById('myElement')) { 
    // do stuff 
    } else { 
    setTimeout(myFunc, XNumber); 
    } 
} 

Hier wird die Callback-Funktion in Timeout wird alle XNumber Millisekunden aufgerufen und wenn das Element in DOM ist es löst die // do stuff

Aber die wichtigste Frage ist, warum willst du tun Trog es, sobald der Tisch JS wird geladen, nachdem die Tabelle geladen wurde und zuvor kein CSS bereit ist dass also, wenn die Tabelle geladen ist, der Stil schon da ist und auf ihn angewendet wird?

Ich würde mit statischen CSS-Overrides sicher gehen, wenn es die einmalige Sache ist. Es ist einfach, lesbar, folgt der Konvention, trennt Probleme in der üblichen Weise und CSS sollte geladen werden, bevor Elemente auftauchen, so dass es sofort auf Ihren Tisch wirkt.

Was wären die Nachteile des üblichen CSS-Ansatzes? Wenn Sie den Stil dynamisch anfügen müssen, können Sie immer noch onload verwenden und nur eine Klasse zur gesamten Tabelle hinzufügen.

+0

Ich möchte es mit dem anderen Hintergrund und Schriftfarbe anderen Wert einstellen – Jim

+0

Also verwenden Sie CSS-Datei (laden Sie es auf Ihrer Indexseite, wenn es einzelne Seite App oder entsprechende Seite, wenn es nicht ist) und überschreiben Sie die entsprechenden Klassen und/oder HTML-Tags für die Tabelle. Ich kann Ihre Tabellenstruktur nicht sehen, daher kann ich Ihnen keinen genauen Code schreiben, aber wenn sie normale Tabellenstruktur hat, könnte sie mit Tabelle> tr {background: red;} arbeiten. Behandeln Sie die Tabelle in DOM wie normale Elemente, die Tatsache ist, dass es nicht hartcodierte erzeugt, ist egal. Verwenden Sie die Dev-Konsole, um herauszufinden, welche Klassen auf Ihre Tabelle angewendet werden, und verwenden Sie diese in CSS-Selektoren. – DanteTheSmith