<div class="main">
<div class="first">A text</div>
<div class="second">B text</div>
</div>
<div class="main">
<div class="first">C text</div>
<div class="second">D text</div>
</div>
我想用 jquery 将 B 文本更改为 A 文本,将 D 文本更改为 C 文本。我添加了这个脚本:
$('.second').html($('.first').html());
但它改变了两个主 div 中的文本
最佳答案
问题是当您使用 text() 时,它将返回集合中的第一项。它不知道你想捕获它来获取其他元素。因此您需要对其进行编码来处理关系。
您必须循环遍历每个组并选择组中的每个组。
$(".main").each( function () {
var elem = $(this)
var text = elem.find(".second").text()
elem.find(".first").text(text)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
<div class="first">A text</div>
<div class="second">B text</div>
</div>
<div class="main">
<div class="first">C text</div>
<div class="second">D text</div>
</div>
其他选项是选择所有元素并循环
var firsts = $(".first")
var seconds = $(".second")
firsts.each( function (index) {
$(this).text(seconds.eq(index).text())
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
<div class="first">A text</div>
<div class="second">B text</div>
</div>
<div class="main">
<div class="first">C text</div>
<div class="second">D text</div>
</div>
并且没有每个
var firsts = $(".first")
var seconds = $(".second")
firsts.text( function (index) {
return seconds.eq(index).text()
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
<div class="first">A text</div>
<div class="second">B text</div>
</div>
<div class="main">
<div class="first">C text</div>
<div class="second">D text</div>
</div>
关于javascript - 将 div 文本替换为 div jquery onload 中的另一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61327388/