我基本上需要将textarea上的每个名字与1234,
组合在一起结果将是:
名称:1234
名称:1234
名称:1234
名称:1234
http://jsfiddle.net/ydr52kbx/131/
<textarea id="copypass1">1234</textarea>
<textarea id="txtList" rows="5">
Name
Name
Name
Name</textarea>
<input id="copypass2" value="Click" type="button">
$('#copypass2').click(function(){
var list = document.getElementById('txtList').innerHTML;
var copypass = document.getElementById('copypass1').innerHTML;
var copypass = ""+list+":"+copypass+"\n";
var copypass = copypass.repeat(4);
var result = ""+list+":"+copypass+"";
alert (result);
});
答案 0 :(得分:1)
您可以获取文本,按\n
拆分,然后使用Array#map
修改元素。然后再次通过\n
加入数组并将字符串设置为textarea。
$('#copypass2').click(function() {
var text = $("#copypass1").val();
var targetText = $("#txtList").val();
targetText = targetText.split('\n').map(item => {
if (!item.endsWith(text)) {
return `${item}: ${text}`;
} else {
return item;
}
}).join('\n');
$("#txtList").val(targetText);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="copypass1">1234</textarea>
<textarea id="txtList" rows="10">
Name
Name
Name
Name</textarea>
<input id="copypass2" value="Click" type="button">
答案 1 :(得分:1)
thenApplyAsync
答案 2 :(得分:0)
首先,您使用了奇怪的jQuery和本机JS方法。如果你承担加载jQuery的惩罚,你也可以利用它的方便。
要实现您的要求,您可以使用正则表达式将新行字符(以及字符串的结尾)替换为第一个ttextarea
中的值,如下所示:
$('#copypass2').click(function() {
var copypass = $('#copypass1').val();
$('#txtList').val(function(i, v) {
return v.replace(/\n|$/g, copypass + '\n');
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="copypass1">1234</textarea>
<textarea id="txtList" rows="10">
Name
Name
Name
Name</textarea>
<input id="copypass2" value="Click" type="button">
&#13;