/ / jquery Farbe je nach Text ändern - jquery, Protokollierung, Farben

jquery ändert die Farbe abhängig vom Text - jquery, logging, colors

Ich habe eine Log-Datei, die wie folgt auf die Seite geladen aussieht:

23-06-2013, 15:04 - Action no.11
-Ip adress ::1
23-06-2013, 15:04 - Error no.21
-Ip adress ::1

und ich möchte die Farbe dieser Aktion ändern.11 und Fehler Nr. 21 mit jquery (hoffe es ist möglich). Aktion sollte eine Farbe (z. B. grün) und Fehler sollte ein anderer sein (z. B. rot). Es wird aus der .log-Datei geladen, so dass es keine Tags wie. Also ich denke, es sollte nach Wort "Action" oder "Fehler" suchen und die Farbe ändern. Danke für Ratschläge

Antworten:

2 für die Antwort № 1
  • Fügen Sie Ihr Protokoll ein .logzum Beispiel zu <pre> (es wird schöner, wenn JS deaktiviert ist):

HTML:

<pre class="log">23-06-2013, 15:04 - Action no.11
-Ip adress ::1
23-06-2013, 15:04 - Error no.21
-Ip adress ::1</pre>
  • Split-Linien zu Array
  • klar .log
  • Schleifenlinien
  • wrap Text in jQuery-Objekt
  • Anhängen .log
  • Überprüfen Sie, ob die Zeile enthält Action oder Error
  • Farbe ändern

jQuery:

var lines = $(".log").text().split("n");
$(".log").empty();

$.each(lines, function() {
var $this = $("<div>"+this+"</div>");

$(".log").append($this);
if( $this.text().match("Action") ) {
$this.css("color", "green");
}
else if( $this.text().match("Error") ) {
$this.css("color", "red");
}
});

jsFiddle


0 für die Antwort № 2

Das ist ein bisschen wie Syntax-Hervorhebung

function makeSpan(match){
var color;
if(match.match("Error")){
color = "red";
}
else{
color = "green";
}
return "<span style="color:"+color+"">"+ match  +"</span>";
}

var body = $("body");
var newBody = body.html().replace(/(Action.+)|(Error.+)/g,makeSpan);
body.html(newBody);

Chek diese jsFIddle