2016-05-09 1 views
0

Ich versuche, den ausgewählten Text in der p-Tag zu ersetzen.Ich habe die neue Zeile Fall behandelt, aber aus irgendeinem Grund der ausgewählte Text ist immer noch nicht ersetzt.Dies ist der HTML-Code.Ersetzen Sie ausgewählten Text in P-Tag

<p id="1-pagedata"> 
(d) 3 sdsdsd random: Subject to the classes of this random retxxt wee than dfdf month day hello the tyuo dsds in twenty, the itol ghot qwerty ttqqo 
</p> 

Dies ist der JavaScript-Code.

function SelectText() { 
var val = window.getSelection().toString(); 
alert(val); 
$('#' + "1-pagedata").html($('#' + "1-pagedata").text().replace(/\r?\n|\r/g,"")); 
$('#' + "1-pagedata").html($('#' + "1-pagedata").text().replace(/[^\x20-\x7E]/gmi, "")); 
$('#' + "1-pagedata").html($('#' + "1-pagedata").text().replace(val,"textbefore" + val + "textAfter")); 
} 

$(function() { 
    $('#hello').click(function() { 
     SelectText(); 
    }); 
}); 

Ich habe auch eine Jsfiddle des Codes erstellt. https://jsfiddle.net/zeeshidar/w50rwasm/ Irgendwelche Ideen?

+0

http://jsfiddle.net/BGKSN/24/ – Denis

Antwort

1

können Sie einfach tun $("#1-pagedata").html('New text here');

+0

eigentlich ich einen Teil des Textes zu ersetzen, die der Benutzer auswählt, so ersetzt a Muss – soldiershin

0

Da Ihr p nicht Inhalt HTML, sondern einfach nur Text, Ihr beide html() oder text() als Getter und Setter verwenden können.

Auch dank jQuery Chaining können Sie alle Ihre Ersetzungen in einer Aussage tun. Also, vorausgesetzt Ihr RegExp die und Wiederbeschaffungswerte richtig sind, versuchen:

var $p = $('#1-pagedata'); 
$p.text($p.text().replace(/\r?\n|\r/g,"").replace(/[^\x20-\x7E]/gmi, "").replace(val,"textbefore" + val + "textAfter"));