2012-04-15 15 views
0

i zu ersetzen haben ein div, dass einige HTML und Text enthält (HTML wird dynamisch hinzugefügt) die Struktur wäre wieRegex einen String aus dem inneren html eines div

<div id="contentContainer"> 
&nbsp; <span>ProductA</span> ; <span>ProductB</span>; prod 
</div> 

Ich möchte die letzte unvollständig entfernen text (prod) aus dem inneren html des div contentContainer beim absenden button klicken

dafür benutzte ich regex returnText.replace (/ \ w + $ /, ''); und es funktioniert gut , wie ich den Text nicht zum letzten Index von ';'

aber nicht das Problem, wenn der Benutzer einig speziellen Charaters in dem unvollständigen Text legt als pr \ od die Regex

nicht so ist es eine Lösung, die den letzten beigefügten Text der innere html des div zu trimmen oder kann ich den Text bis zum letzten HTML-Tag und Platz abschneiden; nach diesem

vorschlagen bitte irgendeine Lösung

Antwort

1

Lösung sieht im letzten DOM-Knoten in DIV, wenn es um einen Textknoten es Text Semikolon ändert, ist

var lastNode = $('#contentContainer').contents().last()[0] 

if (lastNode.nodeType == 3) { 
    lastNode.textContent=';' 
} 

Demo: http://jsfiddle.net/EhcLh/

+0

funktioniert gut, aber immer noch für meinen Fall ich lieber Verwenden Sie Regex –

2

wenn Sie jquery verwenden Sie alle Spannweite Elemente herausziehen können und ersetzen innerHTML- mit ihnen.

$("#contentContainer").html($("#contentContainer span")); 

Das sollte sauber Rest Dinge. Vielleicht nicht das Beste, aber ich denke, es ist besser, dann auf Inhalte zu regexp.

Verwandte Themen