如何将var与var + repeat结合起来?

时间:2018-06-07 08:17:02

标签: jquery

我基本上需要将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);
});

3 个答案:

答案 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中的值,如下所示:

&#13;
&#13;
$('#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;
&#13;
&#13;