js怎么替换textarea中选定的内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js怎么替换textarea中选定的内容?相关的知识,希望对你有一定的参考价值。

我想实现的功能:选择某几个字后点击按钮,就只替换被选择那几个字!
可是现在的效果是替换了开头的字,而不是我选择的那几个!

怎么解决?

<script language="javascript">
function getSelectStr()


var selecter= document.selection.createRange();
var s=selecter.text;
if(s!=null&&s.replace(/(^\s*)|(\s*$)/g, '')!='')
selectStr=s;
document.getElementById('a').value=document.getElementById('a').value.replace(selectStr,"好");




</script>
<button onclick="javascript:getSelectStr()">替换</button><br>
<textarea id="a" name="content" rows="3" cols="30">不不不不不不不不不不</textarea>
我是js新手,请大家把完整代码发上来,谢谢!

你这个问题确实比较复杂,通过document.selection.createRange().text只能获取当前选中的内容,如果在textarea内有重复的文本,正好又是选中的,就没有办法了,就像你举的这个例子。
我在网上找了一下,好像有一个人研究过这个问题,主要是通过捕捉onseleced事件来为选中的文本做一个在总文本中索引,能够解决你的这个问题,你可以去看一下,不过比较复杂。我暂时也没有想更好的方案来,关注一下。
获取TextArea中已选中文本在整个文本串中的索引
文章出处:http://www.diybl.com/course/4_webprogram/php/phpxl/2008916/143140.html

补充:
大哥,你自己去看一下嘛,好长的,不是一两句代码就能搞定的。

参考资料:http://www.diybl.com/course/4_webprogram/php/phpxl/2008916/143140.html

参考技术A textarea 标签设置id=“id”, js:document.getElementById("id").value = "你想要的内容";

JavaScript 如何使用javascript替换选定的textarea值

// code for IE
var textarea = document.getElementById(&quot;textarea&quot;);

if (document.selection)
			{
				textarea.focus();
				var sel = document.selection.createRange();
                                // alert the selected text in textarea
				alert(sel.text);

                               // Finally replace the value of the selected text with this new replacement one
				sel.text = '&lt;b&gt;' + sel.text + '&lt;/b&gt;';
			}




// code for Mozilla

  var textarea = document.getElementById(&quot;textarea&quot;);

  var len = textarea.value.length;
   var start = textarea.selectionStart;
   var end = textarea.selectionEnd;
   var sel = textarea.value.substring(start, end);

   // This is the selected text and alert it
   alert(sel);

  var replace = '&lt;b&gt;' + sel + '&lt;b&gt;';

  // Here we are replacing the selected text with this one
 textarea.value =  textarea.value.substring(0,start) + replace + textarea.value.substring(end,len);

以上是关于js怎么替换textarea中选定的内容?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 如何使用javascript替换选定的textarea值

js修改textarea

我想扩JS替换textarea 中回车字符和空格

js拷贝指定内容到剪切板

文本选择和替换在 textarea 中无法正常工作

JS textarea内容里面有br就换行 我是从数据库出来数据,有<br />