3 回答

TA貢獻1804條經(jīng)驗 獲得超2個贊
問題是當(dāng)您使用 text() 時,它將返回集合中的第一項。它不知道你想抓住它來獲取其他元素。因此,您需要對其進行編碼來處理關(guān)系。
您必須循環(huán)遍歷每個組并選擇該組中的每個組。
$(".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>
其他選項是選擇所有元素并循環(huán)
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>

TA貢獻1906條經(jīng)驗 獲得超3個贊
問題是因為您的代碼選擇了所有.first元素。
要解決此問題,您可以選擇div每個.main塊中的第二個塊,并提供一個函數(shù)來text()返回前一個同級塊的文本。嘗試這個:
$('.main > div:nth-child(2)').text(function() {
return $(this).prev().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>
請注意,使用此方法不再需要.first
和類.second

TA貢獻1847條經(jīng)驗 獲得超7個贊
在這里,您可以嘗試循環(huán).main,獲取.first和.second元素并交換值。
jQuery(function($) {
$.each( $('.main'), function() {
var $first = $(this).find('.first');
var firstHTML = $($first).html();
var $second = $(this).find('.second');
$($second).html(firstHTML);
});
});
<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>
- 3 回答
- 0 關(guān)注
- 227 瀏覽
添加回答
舉報