如何将每个.timeago的title对应传递给同容器的.newDate元素?
解决方法
你的问题出在每次循环都选中了所有.newDate元素,导致每个循环都会把所有.newDate的文本覆盖成当前.timeago的title,最终所有元素只会保留最后一次循环的内容(或是你看到的第一个,取决于循环顺序)。要实现一一对应,需要定位到当前.timeago所在的父容器,再找到容器内对应的.newDate。
修改后的代码如下:
$('.timeago').each(function() { var text = $(this).attr("title"); // 定位到当前timeago所属的postedon容器,再找到里面的newDate $(this).closest('.postedon').find('.newDate').text(text); });
原理说明
$(this).closest('.postedon'):找到当前.timeago元素最近的.postedon父容器,确保我们只操作当前元素所在的分组。.find('.newDate'):在这个父容器内查找对应的.newDate元素,这样就能实现每个.timeago的title对应到同一容器下的.newDate。
另外,因为你已经提前通过$('.postedon').prepend('<div class="newDate"></div>')给每个.postedon都添加了.newDate,所以这种匹配方式是完全准确的。
内容的提问来源于stack exchange,提问作者bstime
相关产品推荐
相关产品推荐

