Jquery 如何替换textarea中的特定行?

Jquery 如何替换textarea中的特定行?,jquery,replace,textarea,Jquery,Replace,Textarea,我试着只替换文本区域中的一行 我正在尝试更改该行,以便在同一表单的其他位置进行选择时更新该行 我认为最好将textarea读入数组,根据需要修改数组元素,然后将其写回文本区域 这是可行的,但我将其附加到当前值,而不是替换它们 如何更换它们 还是有更好的方法 这是文本区域: <textarea name="msg" id="msg" style="height: 150px; width: 300px;"> first line is OK sendline is also fin

我试着只替换文本区域中的一行

我正在尝试更改该行,以便在同一表单的其他位置进行选择时更新该行

我认为最好将textarea读入数组,根据需要修改数组元素,然后将其写回文本区域

这是可行的,但我将其附加到当前值,而不是替换它们

如何更换它们

还是有更好的方法

这是文本区域:

<textarea  name="msg" id="msg"  style="height: 150px; width: 300px;">
first line is OK
sendline is also fine

new val=
this line is fine    
</textarea>
还有一个显示它在做什么

有什么想法吗

谢谢

使用.html()而不是append()方法。html方法会将textarea标记之间的所有内容与新邮件一起重放

.append()方法用于在元素中添加内容

范例

<div id="content">
<p>Hello World</p>
</div>

.append() will add new content inside <div>
.html() will replace the content inside the <div>

你好,世界

.append()将在其中添加新内容 .html()将替换
更新

<script>

$('#test').on('change', function() {
            var test = $(this).val();      
            var lines = $('#msg').text().split(/\n/);
            lines[3] = "new val= " + test;
            $('#msg').html("");
            $.each(lines , function(i, val) { 

                $("#msg").append("\r\n" + lines[i]);
            }); 
        });
</script>

$('#test')。在('change',function()上{
var test=$(this.val();
变量行=$('#msg').text().split(/\n/);
第[3]行=“新值=”测试;
$('#msg').html(“”);
$.each(行,函数(i,val){
$(“#msg”).append(“\r\n”+行[i]);
}); 
});

您好,检查更新的代码现在工作正常

您应该使用
.html()
将行添加到文本区域,或者先将其删除。 此外,您没有更改正确的行索引,也不需要使用
循环行。each()
您只需使用
.join()

以下是一个工作示例:

$(函数(){
$('#test')。在('change',function()上{
var test=$(this.val();
变量行=$('#msg').val().split(/\n/);
第[3]行=“新值=”测试;
$(“#msg”).html(lines.join(“\n”);
});
});

1234
3456
4445


第一行可以 sendline也很好 新瓦尔= 这条线很好
.html()正是我所需要的。但是使用它只会将“#msg”更改为显示
newval=
来自
$(“#test”).val()的值但不是其中的其余文字,有什么办法吗?太好了-非常感谢:)@JeffVader玩得开心!
<div id="content">
<p>Hello World</p>
</div>

.append() will add new content inside <div>
.html() will replace the content inside the <div>
<script>

$('#test').on('change', function() {
            var test = $(this).val();      
            var lines = $('#msg').text().split(/\n/);
            lines[3] = "new val= " + test;
            $('#msg').html("");
            $.each(lines , function(i, val) { 

                $("#msg").append("\r\n" + lines[i]);
            }); 
        });
</script>