为了账号安全,请及时绑定邮箱和手机立即绑定

文本区域,删除最后一段

文本区域,删除最后一段

蓝山帝景 2023-10-20 15:06:28
我想从文本区域中删除最后一段,但我的脚本只能运行一次 - 有没有办法在每次单击按钮时删除最后一段?<!DOCTYPE html><html><body><textarea id="V1" rows="17" cols="65">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque tincidunt scelerisque libero. Sed convallis magna eu sem. Pellentesque sapien. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Integer imperdiet lectus quis justo. Et harum quidem rerum facilis est et expedita distinctio. Duis viverra diam non justo. Aliquam erat volutpat. Aenean placerat. Nullam justo enim, consectetuer nec, ullamcorper ac, vestibulum in, elit. In convallis.</textarea><button onclick="remove()">Remove</button><script>function remove() {var elem = document.getElementById('V1'),val = elem.value.split(/(?:\r\n|\r|\n)/g);val.pop();elem.value = val.join('\r\n') + ('\r\n');}</script></body></html>
查看完整描述

4 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

\r\n您最后要添加一个序列。后续调用只会删除该部分。如果你省略这个并修剪文本,它应该可以工作:


<!DOCTYPE html>

<html>

<body>


<textarea id="V1" rows="17" cols="65">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque tincidunt scelerisque libero. Sed convallis magna eu sem. Pellentesque sapien. 


Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. 


Integer imperdiet lectus quis justo. Et harum quidem rerum facilis est et expedita distinctio. Duis viverra diam non justo. 


Aliquam erat volutpat. Aenean placerat. Nullam justo enim, consectetuer nec, ullamcorper ac, vestibulum in, elit. In convallis.</textarea>


<button onclick="remove()">Remove</button>


<script>

function remove() {

  var elem = document.getElementById('V1'),

  val = elem.value.split(/(?:\r\n|\r|\n)/g);

  val.pop();

  elem.value = val.join('\r\n').trim();

}

</script>


</body>

</html>


查看完整回答
反对 回复 2023-10-20
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

这可以使用该方法来完成filter()。删除后,行之间的间距将保留。


function remove() {

  var elem = document.getElementById('V1'),

  val = elem.value.split(/(?:\r\n|\r|\n)/g).filter(function(i){

  return i;

  });

  val.pop();

  elem.value = val.join('\n\r');

}

<textarea id="V1" rows="17" cols="65">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque tincidunt scelerisque libero. Sed convallis magna eu sem. Pellentesque sapien. 


Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. 


Integer imperdiet lectus quis justo. Et harum quidem rerum facilis est et expedita distinctio. Duis viverra diam non justo. 


Aliquam erat volutpat. Aenean placerat. Nullam justo enim, consectetuer nec, ullamcorper ac, vestibulum in, elit. In convallis.</textarea>


<button onclick="remove()">Remove</button>


查看完整回答
反对 回复 2023-10-20
?
MYYA

TA贡献1868条经验 获得超4个赞

<!DOCTYPE html>

<html>

<body>

    

    <textarea id="V1" rows="17" cols="65">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque tincidunt scelerisque libero. Sed convallis magna eu sem. Pellentesque sapien.

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.

Integer imperdiet lectus quis justo. Et harum quidem rerum facilis est et expedita distinctio. Duis viverra diam non justo. 

Aliquam erat volutpat. Aenean placerat. Nullam justo enim, consectetuer nec, ullamcorper ac, vestibulum in, elit. In convallis.</textarea>

    

    <button onclick="remove()">Remove</button>

    

    <script>

        function remove() {

            var elem = document.getElementById('V1'),

        val = elem.value.split("\n");

            val.pop();

            elem.value = val.join("\n");

        }

    

    </script>

    

</body>

</html>


查看完整回答
反对 回复 2023-10-20
?
交互式爱情

TA贡献1712条经验 获得超3个赞

您必须使用filter空字符串,因为pop要删除数组的最后一项,但有时您的最后一项是这样的:""

为了实现这一点,我使用了双爆炸!! 它根据值返回一个布尔值。


因此,我添加了 +1\r\njoin保留空行。

function remove() {

  var elem = document.getElementById('V1');

  var val = elem.value.split(/(?:\r\n|\r|\n)/g).filter(paragraph => !!paragraph);


  val.pop();


  elem.value = val.join('\r\n\r\n');

}


查看完整回答
反对 回复 2023-10-20
  • 4 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信