jsp textarea删除一行或者多行(textarea删除某行)

1:得到要删除行的数组(光标选择了几行  )  //可以直接拷贝,把字体放大的几个地方注意看下就是

 function getRows(id){
  var startFocus = document.getElementById(id).selectionStart;
  var endFocus = document.getElementById(id).selectionEnd;
  var tags=document.getElementById(id).value;
  var sp="\n";    //此处不行试试换成  \r\n
var rows = [];
var startRow=getStartRow(startFocus,tags,sp);
var endRow=getEndRow(endFocus,tags,sp);
//开始和结束在一行
if(startEnd(startFocus,endFocus,tags,sp)){
// rows.push(startRow);
}else{
//开始点是否在结尾处
if(startIsEnd(startFocus,tags,sp)){
startRow=startRow+1;
//结尾是否在下一行的开始处
}if(endIsStart(endFocus,tags,sp)){
endRow=endRow-1;
}
}
for ( var i = startRow; i <= endRow; i++) {
  rows.push(i);
}
return rows;
 }
 
  
  //开始和结束是否在一行
 function startEnd(startFocus,endFocus,tags,sp)
 { 
    b=false;
    if(startFocus==endFocus){
    b= true;
    }else if(getStartRow(startFocus,tags,sp)==getEndRow(endFocus,tags,sp)){
    b= true;
    }
   return b;
 } 
 
  //开始焦点是否在结束位置
 function startIsEnd(startFocus,tags,sp)
 { 
    var f=[];  f=tags.split(sp);
     var len=0;
     var row=0;
     var b=false;
     for ( var i = 0; i < f.length; i++) {
       if(i!=0){
            len+=1;
          }
        len=len+f[i].length;
        if(startFocus==len){
             b=true;
             break;
         }
  }
     return b;
   }
 
  //结束焦点是否在下一行开始处位置
 function endIsStart(endFocus,tags,sp)
 {
     var str=[];  str=tags.split(sp);
     var len=0; var aa=0;  var endRow=0;
     var b=false;
     for ( var i = 0; i < str.length; i++) {
       if(i!=0){
            len+=1;
          }
        aa=len;
        len=len+str[i].length;
        if(endFocus==len+1){
        b=true;
            break;;
          }
  }
    return b;

 
  //startRow
 function getStartRow(startFocus,tags,sp)
 { 
    var f=[]; f=tags.split(sp);
     var len=0;
     var aa=0;
     var startRow=0;
     for ( var i = 0; i < f.length; i++) {
       if(i!=0){
            len+=1;
          }
        aa=len;
        len=len+f[i].length;
        if(aa<=startFocus&&startFocus<=len){
             startRow=i;
             break;
         }
  }
    return startRow;
 } 
  //engRow
 function getEndRow(endFocus,tags,sp)
 { 
    var str=[];  str=tags.split(sp);
     var len=0;
     var aa=0;
     var endRow=0;
     for ( var i = 0; i < str.length; i++) {
       if(i!=0){
            len+=1;
          }
        aa=len;
        len=len+str[i].length;
        if(aa<=endFocus&&endFocus<=len){
             endRow=i;
             break;
         }
  }
    return endRow;

2 /删除光标所在行的值,得到新的值,也有换行的
 function getNewTags(id,sp)
 {
    var newtags="";
    var tags=document.getElementById(id).value;
    var f=[];    f=tags.split(sp); 
    var rows=getRows(id);
      row="-";     
    for(var i = 0; i< rows.length; i++){
    row=row+rows[i]+"-";
     }
     var b=null;
     for(var j = 0; j < f.length; j++){
     b=newtags;
     if((row.indexOf("-"+j+"-"))==-1){
         newtags=newtags+f[j];
         if(j!=f.length-1){
         newtags=newtags+"\n";          //根据你的换行来
         }
      } 
       } 
    //看是否选择了最后一行
     var le1=rows[(rows.length-1)];
     var le2=f.length-1; 
    if(le1==le2){
    newtags=newtags.substring(0,newtags.length-1)    //  换行是\r\n此处应该就为2
    }
   return newtags;
 }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值