2

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

我认为这可能很简单:

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

但这并没有做任何事情。我环顾四周,找不到与 textarea 相关的 foreach('line') 之类的东西。

是否有捷径可寻??谢谢。

4

3 回答 3

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>>');
    })
})
于 2013-03-31T07:03:24.270 回答
1

prepend() 将指定的标记添加到 jQuery 选择器返回的对象(在本例中为 textarea)。textarea 只能包含文本,不能包含其他子元素;因此,您正在尝试创建无效的 html。

如果您想在文本区域中添加新文本:

$('#mytextarea').val(
    function(i,val){
        return 'EvilHacker001>> ' + val;
    });
于 2013-03-31T07:04:49.690 回答
0

你可以试试这个:

 $('#myTextarea').val(function(i, value){
   return value.split('\n').join('\nEvilHacker001>>');     
 });

您必须获取换行符\n,然后拆分并加入\nEvilHacker001>>.

在这里玩小提琴

于 2013-03-31T07:17:33.330 回答