我在页面中有这个小文本区域,我希望简单地将“>>”添加到每一行。
我认为这可能很简单:
   $("#mytextarea").prepend("EvilHacker001>>");
但这并没有做任何事情。我环顾四周,找不到与 textarea 相关的 foreach('line') 之类的东西。
是否有捷径可寻??谢谢。
对于每一行:
$('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>>');
    })
})
    prepend() 将指定的标记添加到 jQuery 选择器返回的对象(在本例中为 textarea)。textarea 只能包含文本,不能包含其他子元素;因此,您正在尝试创建无效的 html。
如果您想在文本区域中添加新文本:
$('#mytextarea').val(
    function(i,val){
        return 'EvilHacker001>> ' + val;
    });
    你可以试试这个:
 $('#myTextarea').val(function(i, value){
   return value.split('\n').join('\nEvilHacker001>>');     
 });
您必须获取换行符\n,然后拆分并加入\nEvilHacker001>>.