0

我有一个页面,其中包含许多相同类型的 div,如下所示。

<div class="post_right" data-icon = "arrow-r">
 <p>Posted at:</p>
 <div class="post_time"> 
  <%= post.created_at.strftime("%I:%M %P") %> 
 </div>
 <div class="post_timer"></div>
</div>

我有一个 jquery 脚本,它将从“post_time”类中读取并通过向它添加一个值来更新 post_timer 类。

$("document").ready(function() {
    $(".post_timer").each(function(){
    var post_time = $(".post_time").html()
    $(this).html(post_time);
    });     
});

但是所有“post_timer”类的值都被第一个 post_time 值更新。无论如何,我都可以根据整个页面中相应的“post_time”类值来更新 post_timer 值。

4

3 回答 3

1

你需要得到$(".post_time")相同索引的;.html否则只会得到第一个(如您所见)。

var post_time = $(".post_time").eq($(this).index()).html();

http://jsfiddle.net/kVNGN/

于 2013-01-26T01:48:32.313 回答
1

只需将 DOM 遍历到适当的元素。由于在您的示例中,该.post_time元素似乎是该元素的前一个兄弟.post_timer,您可以使用.prev [docs]

$(".post_timer").html(function() {
    return $(this).prev().html();
    // or more structure independent: 
    // return $(this).siblings('.post_time').html();
}); 

jQuery 有更多的遍历方法

于 2013-01-26T01:49:03.823 回答
0
$("document").ready(function() {
    $(".post_timer").each(function(){
    var post_time = $(this).prev(".post_time").html();
    $(this).html(post_time);
    });     
});
于 2013-01-26T02:05:33.677 回答