如何替换文本区域中的一个内容。我有一个供用户喜欢的设备使用的文本区域。
<textarea id="favDevices" class="t"></textarea>
假设用户使用了这三种设备:
Laptop
Computer
PlayStation 4
提交后(使用jquery ajax),我想将内容之一替换为device-VALIDATED
。结果是
Laptop-VALIDATED
Computer-VALIDATED
PlayStation 4-VALIDATED
我尝试找出如何使用以下代码进行操作:
$('form').submit(function(){
f = $("#favDevices").val().split("\n")
for(i in f){
device = f[i];
// function here to send data to back end
f.replace(device, device + "-VALIDATED")
}
})
答案 0 :(得分:1)
mat-paginator {
height: 30px;
margin: 0;
padding: 0;
}
答案 1 :(得分:0)
textarea中的值是一个字符串。您需要将字符串分成几行,在每行的末尾添加-VALIDATED
,然后将其重新组合为一个字符串。
我通常使用正则表达式将其分成几行:
let lines = $("#favDevices").val().split(/(?:\r\n|\r|\n)/);
然后map
对于处理每一行很有用:
lines = lines.map(line => line + "-VALIDATED");
然后join
重新组合为一个字符串;选择您的定界符,我通常使用单个\n
。
const str = lines.join("\n");
实时示例:
const str =
$("#favDevices").val().split(/(?:\r\n|\r|\n)/)
.map(line => line + "-VALIDATED")
.join("\n");
console.log(JSON.stringify(str));
<textarea id="favDevices" class="t">Laptop
Computer
PlayStation 4</textarea>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
在评论中您说过:
但是我想将textarea内的那些内容替换为
device-VALIDATED
,所以device的新值是device-VALIDATED
您将添加第四步:写回到textarea
:
$("#favDevices").val(str);
实时示例:
const favDevices = $("#favDevices");
const str =
favDevices.val().split(/(?:\r\n|\r|\n)/)
.map(line => line + "-VALIDATED")
.join("\n");
favDevices.val(str);
<textarea id="favDevices" class="t">Laptop
Computer
PlayStation 4</textarea>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>