I am trying to replace specific highlighted(marked) text from element.
This is how I get the highlighted text so far:
var markArea = $('.ElementText textarea').get(0);
var text = markArea.value.substring(markArea.selectionStart, markArea.selectionEnd);
So if I have something like this in the textarea: "apple banana apple orange" and mark the third word (apple) I want to replace exactly what I have marked without any other occurrences of "apple" in the textarea.
Is there a way to specify the start and end area where the code should look for replacement in the string?
$("#notice p"). text($("#notice p"). text(). replace("some", "My"));
To replace only text inside a div using jQuery, use the text() method.
In JavaScript, the "inner" text of an HTML element refers to the text between any set of HTML tags and using innerText property, one can set the text in JavaScript. But to set innerText using jQuery, use text() method. jQuery text() method sets the innerText of any element.
You could try something like this,
var markArea = $('.ElementText textarea').get(0);
var startStr = markArea.value.substring(0,markArea.selectionStart);
var endStr = markArea.value.substring(markArea.selectionEnd);
var text = startStr +"REPLACEMENT VALUE HERE"+ endStr;
$('.ElementText textarea').val(text);
I'd play with this a little it might be off by 1 on either the startStr or endStr (I always mess that up :/ ) but this should do what you're looking to do.
Wrote this before the above answer, but I'll keep it because it is just a different way of writing the code/doesn't use jQuery:
function replaceAtIndex(str,s,e,rep){
return str.slice(0,s) + rep + str.slice(e);
}
markArea.value = replaceAtIndex(markArea.value,markArea.selectionStart,markArea.selectionEnd,"replacement");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With