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

时间:2013-06-12 20:03:14

标签: javascript jquery

我无法弄清楚如何删除文本区域中的单个条目(最后一项)。非常感谢任何帮助/建议。这是一个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();

    });     


});

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您的文本区域中有文字,您需要删除它的最后一行。您可以抓取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>

您需要注意textarea末尾的行,这些行只包含'\ n'。