Проблема в том, что когда вы используете text (), он вернет первый элемент в коллекции. Он не имеет ни малейшего понятия, что вы хотите захватить его для других элементов. Поэтому вам нужно закодировать его, чтобы разобраться со связями.
Вам нужно будет l oop для каждой группы и выбрать каждого в группе.
$(".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>
Другой вариант - выбрать все элементы и l oop over
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>