jquery如何选中textarea中的文字

jaksmine 2012-11-16 02:20:16
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var content = $('#content').val();
var new_content = content.replace(new RegExp('中国', 'g'), '<b>中国</b>');
$("#content").val(new_content);
});
</script>
<textarea id="content" name="content" style="width:300px;height:100px;">
【加藤中国造 小三商院好】日本韩寒倒塌,原来是中国制造;环卫工砍手指,原来是乱扔垃圾;深圳地铁逼停,原来是移动wifi;26亿再造天梯,原来是消费爱情;地产界八卦忙,原来是商院火爆!
</textarea>

我想选中textarea中的“中国”,可以实现吗?
...全文
753 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
textarea有点麻烦,一次只能高亮一段内容,不能同时选择不同的内容。 要不检查到有敏感信息的时候不允许提交,弹出一个层浮动在textarea上面,内容为textarea中的value,并高亮敏感词。
 <script type="text/javascript" src="http://www.coding123.net/js/jquery.js"></script>
 <script type="text/javascript">
     var rx=/(中国|八卦)/g;
     function check() {
         var t = $('#content');
         if(rx.test(t.val())){
		   var pop=$('#dvPop');
		   if(!pop.attr('init'))pop.css({left:t.offset().left,top:t.offset().top,width:t.width(),height:t.height()});
		   pop.find('div:last').html(t.val().replace(rx,'<span class="kw">$1</span>')).end().show();
		 }
     }
 </script>
 <style type="text/css">
 .kw{background:#f00;color:#fff;}
 #dvPop{position:absolute;display:none;border:solid 1px #000;background:#fff;overflow:auto;}
#dvPop .close{text-align:right;color:blue}
 </style>
 <div id="dvPop"><div class="close">存在敏感内容,清检查后再提交!<input type="button" onclick="$(this).parent().parent().hide()" value="关闭"/></div><div></div></div>
 <textarea id="content" cols="50" rows="5">
 【加藤中国造 小三商院好】日本韩寒倒塌,原来是中国制造;环卫工砍手指,原来是乱扔垃圾;深圳地铁逼停,原来是移动wifi;26亿再造天梯,原来是消费爱情;地产界八卦忙,原来是商院火爆!
 </textarea><br />
<input type="button" value="提交" onclick="check()" />
jaksmine 2012-11-16
  • 打赏
  • 举报
回复
引用 10 楼 showbo 的回复:
引用 7 楼 Jasmine_xiaocao 的回复:引用 4 楼 showbo 的回复:XML/HTML code?123456789101112131415161718192021222324252627 <script type="text/javascript"> function sel(s) { var t = document.get……
我在火狐下测试怎么不行,我是最新版的firefox,可能是版本问题, 既然选中不行,有没有什么办法把关键词突出出来呢,我现在需要当用户输入信息时,不允许输入敏感词, 但是敏感词,但是文字太多,找起来很麻烦,希望把这些敏感词突出显示一下,有没有什么办法可以实现呢
  • 打赏
  • 举报
回复
看来楼上也没看清要求,楼主要的是选中,不是替换 不过楼主给的代码有问题,让人误解了。 showbo 帮我看个问题呗。 http://bbs.csdn.net/topics/390283626?page=1#post-392935643
-布谷鸟- 2012-11-16
  • 打赏
  • 举报
回复
不用jquery行吗? document.getElementById("content").innerHTML.replace(/中国/g,"<b>中国</b>"); 一句话的事!
  • 打赏
  • 举报
回复
我试过了,在火狐下可以
xb12369 2012-11-16
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 7 楼 Jasmine_xiaocao 的回复:
引用 4 楼 showbo 的回复:XML/HTML code?123456789101112131415161718192021222324252627 <script type="text/javascript"> function sel(s) { var t = document.getElementById('content'), v =……
可以啊,我测试过的。。多个关键字肯定不行了,你就用鼠标你都没办法选择不连续的关键字。
  • 打赏
  • 举报
回复
window.find也行。。
 <script type="text/javascript">
     function sel() {
         var s = document.getElementById('kw');
         if (s.value == '') { alert('请输入关键字!'); s.focus(); return false; }
         s = s.value;
         var t = document.getElementById('content')
         end = start + s.length;
         if (typeof t.createTextRange != 'undefined') { //IE
             var r = t.createTextRange(); 
             r.findText(s);
             r.select();
         }
         else if (typeof window.find != 'undefined')  //firefox,chrome
             window.find(s);

     }
 </script>
 <textarea id="content" cols="50" rows="5">
 【加藤中国造 小三商院好】日本韩寒倒塌,原来是中国制造;环卫工砍手指,原来是乱扔垃圾;深圳地铁逼停,原来是移动wifi;26亿再造天梯,原来是消费爱情;地产界八卦忙,原来是商院火爆!
 </textarea><br />
 关键字:<input type="text" id="kw"/><input type="button" value="选中输入的关键字" onclick="sel()" />
  • 打赏
  • 举报
回复
重新看了一遍,明白楼主的意思 了
jaksmine 2012-11-16
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
XML/HTML code?123456789101112131415161718192021222324252627 <script type="text/javascript"> function sel(s) { var t = document.getElementById('content'), v = t.value, start = ……
火狐下不行,其他浏览器也只能选中一个,文本框有多个关键词,只能选中第一个,请问这个原理是什么,代码看不懂
xuriliangjava 2012-11-16
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
XML/HTML code?123456789101112131415161718192021222324252627 <script type="text/javascript"> function sel(s) { var t = document.getElementById('content'), v = t.value, start = ……
学习了。
  • 打赏
  • 举报
回复
为什么这么麻烦
  • 打赏
  • 举报
回复
 <script type="text/javascript">
     function sel(s) {
         var t = document.getElementById('content'), v = t.value, start = v.indexOf(s), end;
         if (start == -1) return//找不到内容则推出
         end = start + s.length;
         if (typeof t.createTextRange != 'undefined') { //IE
             var r = t.createTextRange();
             //先将光标重合
             r.moveStart('character', 0);
             r.moveEnd('character', 0);
             r.collapse(true);
             r.moveEnd('character', end);
             r.moveStart('character', start);
             r.select();
         }
         else if (typeof t.selectionStart!='undefined') { //firefox,chrome

             alert(t.selectionStart)
             t.selectionStart = start;
             t.selectionEnd=end
         }
     }
 </script>
 <input type="button" value="选中“中国”" onclick="sel('中国')" />
 <textarea id="content" name="content" style="width:300px;height:100px;">
 【加藤中国造 小三商院好】日本韩寒倒塌,原来是中国制造;环卫工砍手指,原来是乱扔垃圾;深圳地铁逼停,原来是移动wifi;26亿再造天梯,原来是消费爱情;地产界八卦忙,原来是商院火爆!
 </textarea>
jaksmine 2012-11-16
  • 打赏
  • 举报
回复
引用 1 楼 xuriliangjava 的回复:
$("#content").html(new_content);
我是想在textarea中选中,用Html不行
  • 打赏
  • 举报
回复
$("#content").attr("value", new_content);
xuriliangjava 2012-11-16
  • 打赏
  • 举报
回复
$("#content").html(new_content);

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧