我有8个跨度,当从页面加载时,可以看到4个从数据库中检索到的值的跨度。其他跨度位于我自己的弹出框中,当用户单击按钮查看弹出窗口时,可见的跨度值也需要位于弹出框内的跨度内。
所以我使用了一个带有两个类的each()函数,' .heart'是具有前4个跨度的类,在页面加载时可见。 ' .likes计数'是另一个在弹出框中有4个跨度的类。
我的目标是将前4个跨度中的任何值分配给弹出框中的其他跨度。
我目前卡在下面的代码中。
$('.heart, .likes-count').each(function(i, element) {
var thisID = "#" + $(this).attr('id'); // '#like1', '#like2'
var getAgain = "." + $(thisID + " span").attr('class'); // .likeCount1
getAgain = $(getAgain).text();
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 0 :(得分:2)
您可以使用jQuery&#39; s each遍历第一个div的跨度。 each
的回调函数为您提供了一个索引参数,您可以使用该参数选择另一个div的相应索引跨度。
$("#hearts span").each(function(index){
var text = $(this).text();
$("#likes span").eq(index).text( text );
});//each
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="hearts">
<span>12</span>
<span>24</span>
<span>36</span>
<span>48</span>
</div>
<div id="likes">
<span></span>
<span></span>
<span></span>
<span></span>
</div>
&#13;
答案 1 :(得分:1)
试试这个:
$('.heart').each(function(i) {
$('.likes-count:eq('+i+')').text($(this).text())
});
答案 2 :(得分:1)
您可以使用.text()
的回调功能,而不是使用.each()
来实现此功能:
var heartspans = $("#hearts span");
$("#likes span").text(function(i,o){
return heartspans.eq(i).text();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="hearts">
<span>12</span>
<span>24</span>
<span>36</span>
<span>48</span>
</div>
<div id="likes">
<span></span>
<span></span>
<span></span>
<span></span>
</div>
&#13;