簡體   English   中英

逐行從textarea中刪除文本

[英]Remove text from textarea line by line

我做了一段代碼,逐行刪除了textarea上的文本。 但是似乎不起作用,它在第三行之后刪除了第一行並再次重復任何一個幫助我,這是我嘗試過的代碼:

<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/>

您應該這樣使用索引0

$('span').append('<br />Remove: '+textareavalue[0]); 

這是因為先前顯示的元素已通過splice刪除,因此您的下一行再次位於第一個位置。

還要更改循環條件,因為這種split會使您的length減小:

while(textareavalue.length)

您還應該給span指定一個id ,因為您的頁面上(或將來)可能會存在其他span標簽。

每次單擊都可以清除span內容,因此它僅顯示最后一次刪除操作的結果。

最好不要同時發生所有事件,因為那樣您就可以看到最終結果。 您可以使用這樣的計時器:

的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);
    });
});

這是一個小提琴

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"));
}

是的,由於使用了splice()方法,使用新數據和循環更新的數組本身也在同一數組上重復。 在循環內將i值更改為0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM