2013-03-04 14 views
7

Linki z bazy danych są tytułami stron i renderowane na stronie "Interesting Article: Autor" - ale czasami link jest pytaniem "Where's China?: GoogleMaps". Model ?: wygląda głupio, więc chciałem zastąpić kod HTML ?</span>: przez ?</span>.Znajdź i zamień ciąg znaków HTML za pomocą jQuery

Oto jQuery wypracowałem:

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

Ale to właściwie nie zastąpi go w DOM. Jak uzyskać ten ciąg, aby faktycznie zmienić stronę?

Odpowiedz

19

sugeruję:

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

JS Fiddle demo.

Albo nawet:

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

JS Fiddle demo.

Uaktualniona podejście polega na sprawdzeniu, że ostatni znak w span jest w tablicy ['?','!','.'], a jeśli tak, to w celu usunięcia : z nextSibling za nodeValue:

$('#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.

Odniesienia:

+0

Dzięki hałdy na odpowiedź i przepraszam za tak długo, aby wrócić do niego rundę. Odpowiedź jest poprawna, ale niepoprawnie sformułowałam moje pytanie, więc rozwiązanie nie pasuje do mojego problemu. Mam [rozwidlone skrzypce] (http://jsfiddle.net/danielmee/FY5Tp/2/) i, korzystając z podanych informacji, opracowałem większość ... po prostu nie mogę wymyślić składnia operandów OR w instrukcji if. Skończyło się na rozwiązaniu go przy użyciu! = Null :) – Daniel

Powiązane problemy