jQuery帮助在Textarea中添加和删除元素

jQuery Help Adding and Deleting Elements in Textarea

本文关键字:删除 元素 添加 帮助 Textarea jQuery      更新时间:2023-09-26

我不知道如何删除文本区域中的单个条目(最后一项)。非常感谢任何帮助/建议。这是一个jsFiddle的例子。

这是我的jQuery:
jQuery(function() { 
    var addName = jQuery('input.addName'),
            addLanId = jQuery('input.addLanId'),
            addPerId = jQuery('input.addPersonId'),
            textArea = jQuery('textarea.addPersonInfo');
    addPerId.keyup(function() {
        this.value = this.value.replace(/[^0-9'$]/g,'');            
    });
    jQuery('.btn-add').on('click', function() {
        var addNameValue = addName.val(),
            addLanIdValue = addLanId.val(),
            addPerIdValue = addPerId.val();
        if (addNameValue == '' || addLanIdValue == '' || addPerIdValue == ''){
            return false;
        }
         var elFormat = addNameValue + " (LAN ID: " + addLanIdValue + ") (Person ID: " + addPerIdValue + ")'n",
            addEl = jQuery(textArea).append(elFormat);
            addName.val('');
            addLanId.val('');
            addPerId.val('');   

    }); 
    jQuery('.btn-delete').on('click', function() {              
        jQuery('.addPersonInfo:last-child').remove();
    });     

});

如果我理解正确的话,你的文本区域有文本,你需要删除它的最后一行。你可以抓取textarea的内容,使用javascript的split方法拆分它,删除最后一行并将它们连接在一起:

<textarea id="t">
line 1
line 2
</textarea>
<script type="text/javascript">
  lines = $("#t").val().split("'n");
  // remove the last line
  lines.pop();
  // re-assign it to the textarea
  $("#t").val(lines.join());
</script>

您需要检查的一件事是,在弹出之后,您仍然有数组中的元素要连接。我相信如果你弹出一个包含2个或更少项目的数组,该数组可能会被更改为字符串。

上面的版本没有考虑回车回车的问题。试试这个:

<script type="text/javascript">
  var s="";
  lines = $("#t").val().split("'n");
  // build a string with all elements, except the last
  for(i=0;i<lines.length-1;i++){ 
    s+=lines[i] + "'n"
  }
  // re-assign it to the textarea
  $("#t").val(s);
</script>

您需要注意文本区末尾只包含''n'的行