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