前置到textarea的所有行

时间:2013-03-31 06:57:07

标签: jquery html5 css3 textarea prepend

我在页面中有这个小文本区域,我希望简单地添加“>>”到每一行。

我认为它可能很简单:

   $("#mytextarea").prepend("EvilHacker001>>");

但那没有做任何事情。我环顾四周,找不到与textarea有关的foreach('line')。

有一种简单的方法吗?感谢。

3 个答案:

答案 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');     
});

http://jsfiddle.net/DpQS4/

对于每个值:

$('textarea').val(function(_, value){
   return "EvilHacker001>>" + value;
});

<强>更新

$('textarea').keyup(function (e) {
    if (e.which == 13) {
        $(this).val(function (i, value) {
            return value + '>>';
        })
    }
});

http://jsfiddle.net/hBcHS/

或者:

$('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>>

Get in the Fiddle here