Javascript 逐行删除文本区域中的文本
我编写了一个代码,逐行删除textarea上的文本。然而,它似乎不起作用,它删除了第一行,然后第三行,并再次重复任何人帮助我,请这是我尝试的代码:Javascript 逐行删除文本区域中的文本,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我编写了一个代码,逐行删除textarea上的文本。然而,它似乎不起作用,它删除了第一行,然后第三行,并再次重复任何人帮助我,请这是我尝试的代码: <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script> $(document).ready(function(){ $('#remove').cl
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#remove').click(function(){
var textareavalue = $('#sometext').val().split("\n");
for(i=0; i < textareavalue.length;i++)
{
$('span').append('<br />Remove: '+textareavalue[i]);
textareavalue.splice(0, 1);
$('#sometext').val(textareavalue.join("\n"));
}
});
});
</script>
</head>
<textarea cols="40" rows="10" id="sometext"></textarea>
<br />
<button id="remove">Remove</button>
<br />
<span><span/>
$(文档).ready(函数(){
$(“#删除”)。单击(函数(){
var textareavalue=$('#sometext').val().split(“\n”);
对于(i=0;i 删除:'+textareavalue[i]);
textareavalue.拼接(0,1);
$('#sometext').val(textareavalue.join(“\n”);
}
});
});
去除
您应该像这样使用索引0
:
$('span').append('<br />Remove: '+textareavalue[0]);
您还应该为我们的span
提供id
,因为您的页面上(或将来)可能存在其他span
标记
每次单击时最好清除span
内容,这样它只显示上次删除操作的结果
最好不要让它同时发生,因为这样你就能看到最终的结果。您可以使用如下计时器:
$('span').append('<br />Remove: '+textareavalue[0]);
HTML
<textarea cols="40" rows="10" id="sometext">
</textarea>
<br />
<button id="remove">Remove</button>
<br />
<span id="out"><span/>
去除
JS
function removeLine() {
if ($('#sometext').val().replace(/\n$/, '').length === 0) {
// nothing to do
return;
}
var textareavalue = $('#sometext').val().split("\n");
// log line that will be removed
$('#out').append('<br />Remove: '+textareavalue[0]);
// remove line
textareavalue.splice(0, 1);
$('#sometext').val(textareavalue.join("\n"));
// remove next line with delay
setTimeout(removeLine, 200);
}
$(function(){
$('#remove').click(function(){
// clear log
$('#out').html('');
setTimeout(removeLine, 200);
});
});
函数removeLine(){
if($('#sometext').val().replace(/\n$/,'').length==0){
//无事可做
返回;
}
var textareavalue=$('#sometext').val().split(“\n”);
//将被删除的日志行
$(“#out”).append(“
Remove:”+textareavalue[0]);
//拆线
textareavalue.拼接(0,1);
$('#sometext').val(textareavalue.join(“\n”);
//延迟删除下一行
设置超时(removeLine,200);
}
$(函数(){
$(“#删除”)。单击(函数(){
//清除日志
$('#out').html('');
设置超时(removeLine,200);
});
});
这是一个用于(var i=0,l=textareavalue.length;i是的,由于使用了splice()方法,数组本身也在使用新数据更新,循环也在同一数组上重复。将循环中的i值更改为0。php与此有什么关系?我们去问问stackoverflow他们为什么建议使用php:)靴子很愚蠢,人类不愚蠢谢谢,你的答案几乎合适。但是当我尝试时,我遇到了一个问题,循环不会停止,例如,如果我放置test1、test2、test3,test4结果是Remove:test1 Remove:test2 Remove:test3 Remove:test4 Remove:test1 Remove:test2 Remove:test3 Remove:test4而这段代码可能会回答这个问题,提供关于为什么和/或如何回答这个问题的附加上下文可以提高其长期价值。
for(var i=0, l = textareavalue.length; i < l; i++) {
$('span').append('<br />Remove: '+textareavalue[0]);
textareavalue.splice(0, 1);
$('#sometext').val(textareavalue.join("\n"));
}