我在页面中有这个小文本区域,我希望简单地添加“>>”到每一行。
我认为它可能很简单:
$("#mytextarea").prepend("EvilHacker001>>");
但那没有做任何事情。我环顾四周,找不到与textarea有关的foreach('line')。
有一种简单的方法吗?感谢。
答案 0 :(得分:3)
对于每一行:
$('textarea').val(function(_, value){
var arr = value.split('\n');
for (var i = 0; i < arr.length; i++)
arr[i] = "EvilHacker001>>" + arr[i];
return arr.join('\n');
});
对于每个值:
$('textarea').val(function(_, value){
return "EvilHacker001>>" + value;
});
<强>更新强>:
$('textarea').keyup(function (e) {
if (e.which == 13) {
$(this).val(function (i, value) {
return value + '>>';
})
}
});
或者:
$('textarea').keyup(function (e) {
$(this).val(function (i, value) {
return value.replace(/\n(?!>)/g, '\n>>');
})
})
答案 1 :(得分:1)
prepend()将指定的标记添加到jQuery选择器返回的对象中(在本例中为textarea)。 textarea只能包含文本,不包含其他子元素;因此,您正在尝试创建无效的HTML。
如果要在textarea中添加新文本:
$('#mytextarea').val(
function(i,val){
return 'EvilHacker001>> ' + val;
});
答案 2 :(得分:0)
你可以尝试这个:
$('#myTextarea').val(function(i, value){
return value.split('\n').join('\nEvilHacker001>>');
});
您必须获取换行符\n
,然后拆分并加入\nEvilHacker001>>
。