2013-03-04 13 views
7

Links aus der Datenbank sind Website-Titel und Render auf der Seite "Interesting Article: Autor" - aber gelegentlich ist der Link eine Frage "Where's China?: GoogleMaps". Das ?: sieht albern aus, also wollte ich das HTML ?</span>: durch ?</span> ersetzen.Suchen und ersetzen HTML-Zeichenfolge mit jQuery

Hier ist die jQuery ich gearbeitet:

$('#relatedinfo ul li a').html().replace('?</span>:','?</span>');

Aber das ist eigentlich nicht in dem DOM zu ersetzen. Wie bekomme ich diese Zeichenfolge, um die Seite tatsächlich zu ändern?

Antwort

19

Ich würde vorschlagen:

$('#relatedinfo ul li a').html(function(index,html){ 
    return html.replace(/<\/span>(\:)/,''); 
}); 

JS Fiddle demo.

Oder auch:

$('#relatedinfo ul li a').text(function(index,text){ 
    return text.replace(':',''); 
}); 

JS Fiddle demo.

Ein aktualisierter Ansatz ist zu prüfen, ob das letzte Zeichen in den span ist in der Anordnung von ['?','!','.'] und, wenn ja, dann die : vom nodeValue des nextSibling zu entfernen:

$('#relatedinfo ul li a span').text(function(index,text){ 
    var lastchar = text.split('').pop(); 
    if (['?','!','.'].indexOf(lastchar) > -1) { 
     this.nextSibling.nodeValue = this.nextSibling.nodeValue.replace(':',''); 
    } 
}); 

JS Fiddle demo.

Referenzen:

+0

Dankhaufen für die Antwort und entschuldige mich für so lange dauert Runde zurück, um es zu bekommen. Die Antwort ist richtig, aber ich habe meine Frage falsch formuliert und die Lösung passt nicht ganz zu meinem Problem. Ich habe [die Geige gegabelt] (http://jsfiddle.net/danielmee/FY5Tp/2/) und, unter Verwendung der Informationen, die du geliefert hast, den Großteil davon ausgearbeitet .... kann einfach nicht herausfinden Syntax für OR-Operanden in einer if-Anweisung. Ich habe es gelöst mit! = Null :) – Daniel