jQuery替换标记文本

时间:2012-07-09 16:54:53

标签: javascript jquery replace

我正在尝试从元素中替换特定的突出显示(标记)文本。

这是我到目前为止获得突出显示文本的方式:

var markArea = $('.ElementText textarea').get(0);
var text     = markArea.value.substring(markArea.selectionStart, markArea.selectionEnd);

所以,如果我在textarea中有类似的东西:“apple banana apple orange”并标记第三个单词(apple)我想在textarea中替换我标记的没有任何其他“apple”的内容。< / p>

有没有办法指定代码应该在字符串中查找替换的开始和结束区域?

2 个答案:

答案 0 :(得分:5)

你可以尝试这样的事情,

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);

我会玩这一点,它可能会在startStr或endStr上被1关闭(我总是把它搞砸了:/)但是这应该做你想做的事。

答案 1 :(得分:3)

在上面的答案之前写了这个,但是我会保留它,因为它只是编写代码的一种不同方式/不使用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");