Javascript复制div文本并拆分为输入

时间:2018-10-23 16:26:17

标签: javascript

大家好,尝试将div中的文本复制到按钮单击上的输入中 我到它复制文本的位置,但是我不想复制整行 所以我想知道是否可以将每个名称分别复制到输入中?

var namesButton = document.getElementById("names");
namesButton.addEventListener("click", names);

var counter = 0;

function names() {
  var elems = document.getElementsByClassName("hud-leaderboard-party");
  var lastElem = elems[counter];
  document.getElementsByClassName("hud-intro-name")[0].value = lastElem.innerText;
  counter += 1;
  if (counter >= elems.length) {
    counter = 0;
  }
}
<div class="hud-intro-leaderboard-parties">
  <div class="hud-leaderboard-party">name one, name two, — <strong>1000</strong></div>
  <div class="hud-leaderboard-party">name three, name four, — <strong>1000</strong></div>
  <div class="hud-leaderboard-party">name five, — <strong>1000</strong></div>
</div>

<input type="text" class="hud-intro-name" style="width: 50%;"> &nbsp;
<button id="names" style="width: 40%;">copy name to input</button>

1 个答案:

答案 0 :(得分:0)

我假设“将名称分开?”在您的问题中意味着仅获取标签的文本内容而没有内部标签内容。

一种简单的方法是按照@СергейПетрашко在注释中的建议将文本内容包装在标签中。

如果无法修改HTML,则可以使用childNodes textContent属性代替lastElem.innerText;

所以在您的功能中,

document.getElementsByClassName("hud-intro-name")[0].value = lastElem.innerText;

以上行可以修改为

document.getElementsByClassName("hud-intro-name")[0].value=lastElem.childNodes[0].textContent;

但是仍然会有“-”,其中名称作为标签文本内容的一部分,您应该能够通过分割字符串或类似内容来将其删除。