我在页面中有这个小文本区域,我希望简单地将“>>”添加到每一行。
我认为这可能很简单:
$("#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>>
.