从多个div获取文本并将其放置在其他对应的div中

时间:2019-01-30 00:47:07

标签: javascript jquery

我有一个项目,需要从多个容器中复制文本并将其添加到其他容器中。

具体来说,我在HTML页面上的一个地方有多个问题和答案文本,我需要复制文本并将其放置在页面上的相应位置。

我已经设置了一个Codepen来更好地解释我的需求(使用4个问题进行了演示,但是在项目中我有20个问题): https://codepen.io/voodoo6/pen/xMRKpr

我需要所有“源”文本替换相应位置中的“目标”文本,例如.target > q1.target > a1需要使用HTML文本.source > q1.source > a1

替换

尝试获取index问题的each并将其与相应的div 匹配时,我的JS / Jquery技能使我失败了–例如。确保仅将问题2的源文本放在问题2的目标中。

有人可以帮助我吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

此示例可能会有所帮助:

$(function() {
  $(".source-item").each(function(i, el) {
    var q = $("div[class*='q']", el).text();
    var a = $("div[class*='a']", el).text();
    $(".target-item div.q" + (i + 1)).html(q);
    $(".target-item div.a" + (i + 1)).html(a);
  });
});
.target-item {
  margin-bottom: 20px;
  color: red;
}

.source-item {
  margin-bottom: 20px;
  color: green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="target-item">
  <div class="target q1">Question 1 Text Target</div>
  <div class="target a1">Answer 1 Text Target</div>
</div>
<div class="target-item">
  <div class="target q2">Question 2 Text Target</div>
  <div class="target a2">Answer 2 Text Target</div>
</div>
<div class="target-item">
  <div class="target q3">Question 3 Text Target</div>
  <div class="target a3">Answer 3 Text Target</div>
</div>
<div class="source-item">
  <div class="source q1">Question 1 Source Text</div>
  <div class="source a1">Answer 1 Source Text</div>
</div>
<div class="source-item">
  <div class="source q2">Question 2 Source Text</div>
  <div class="source a2">Answer 2 Source Text</div>
</div>
<div class="source-item">
  <div class="source q3">Question 3 Source Text</div>
  <div class="source a3">Answer 3 Source Text</div>
</div>

希望有帮助。

答案 1 :(得分:0)

尝试选择一个具有以'a'开头的类的元素,让一个变量(let data ='')最初设置为空'',然后调用.each()将所有text()附加到该元素中,并在。每()。最后,将该数据设置为目标容器的text()。

  let data=''
  abc = ()=> {
      $().each(()=>{
      data = $(this).text()
  })
  $().text(data)
  }

您可以轻松地选择答案,方法是在班级中添加“答案”,而您的班级“ a”作为前缀,答案编号保留在那里。对于div内容,进一步尝试使用html()或innerHtml()吗?代替text()