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>

「post_time」クラスから読み取り、それに値を追加して post_timer クラスを更新する jquery スクリプトがあります。

$("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要素は要素の前の兄弟であるように見えるため、[docs].post_timerを使用できます。.prev

$(".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 に答える