0

一連のdivをループし、要素を含むdivを選び出し、small要素のコンテンツを複製smallし、ページ上の別のブロックを検索してli、インデックスがループ内の現在のdivで、smallから複製されたコンテンツをそのdiv内elementspan要素に挿入します。

クローンされたコンテンツをに挿入することになっている部分まで、それは機能していliます。何も起こりません。また、コメントアウトしたコードに示されているように、関数に入れようとすると、すべてが失敗します。どんな助けでもいただければ幸いです。

//function NewPosts(){
    jQuery('div.tracked_tags > div').each(function (i) {
        var thisIndex = jQuery(this).index();
        if (jQuery(this).find('small').length){

            var postCount = jQuery(this).find('small').contents().clone();
            //alert('Hey'+postCount.html()+''+thisIndex+'');

            jQuery('div#right_column ul#tracked_tags li:eq('+thisIndex+')').find('.count').contents(postCount).alert(postCount);
            //setTimeout(arguments.callee, 30000);
        }
    });
//};

これがフィドルです。アラートは重要ではありません。トラブルシューティングのためにアラートを貼り付けました。

提案によると、これは基本的に私が始めているコードです:

<div class="tracked_tags">
        <div>
                <small id="blah" class="count">10 new posts</small>
                                                    </a>
        </div>
        <div>
                <small id="blah2" class="count">5 new posts</small>
                                                    </a>
        </div>                      
</div>

<ul id="tracked_tags">
<li><a href=""><span class="count"></span></a></li>
<li><a href=""><span class="count"></span></a></li>
</ul>

そして、これが私が最終的にやりたいことです:

<ul id="tracked_tags">
<li><a href=""><span class="count">10 new posts</span></a></li>
<li><a href=""><span class="count">5 new posts</span></a></li>
</ul>

編集:理由はわかりませんが、ある要素から別の要素にコンテンツをコピー/貼り付けするコードの部分が突然機能し始めました。私はいくつかのことを微調整したので、何がそれをやったのかわかりませんが、ハザ!

ただし、それでもすべてが失敗するのは、それをラップしている関数のコメントを外すことです。30秒ごとに再実行できるように、関数内にある必要があります。

4

3 に答える 3

1

.contentsではなく.htmlを使用してデータを挿入します。

変化する

find('.count').contents(postCount); 

find('.count').html(postCount)
于 2012-10-04T01:10:35.537 に答える
0

コメントされたコードについて:

//function NewPosts(){
//};
   ^---REMOVE THIS

その他
のこと:.contents()はgetterとしてのみ機能し、 apiリファレンス.contents(postCount)を参照して示唆するようにsetterとしては機能しないようです。

于 2012-10-04T01:00:20.080 に答える
0

主要な問題:

  1. .alert()プロパティではなく、そのように連鎖することはできません。
  2. フィドルで。そのユーザースクリプトjQueryコードは良くありません(他のいくつかの罪の中でも、Firefoxで壊れます)。そのようなコードは、尋ねられた質問に関係なく、ほとんどの (おそらくすべての) ユーザーのフィドルを壊すため、フィドルから省略します。
  3. 関数 ( ) にラップされると、内部(または後で注入されたノード)NewPostsから呼び出されない限り、コードは起動しません。myFunction()<script>

軽度の問題:

  1. 投稿数が単なるテキストの場合 (サンプル HTML からそう思われるように、.contents()orは使用しないでください.html().text()
  2. 同様に、コンテンツに HTML ノードが含まれていない限り、特にイベント リスナーを使用する必要はありません.clone()

とにかく、問題 1、2、および 3 を修正すると、コードが機能しているように見えます。このフィドルを参照してください。

function NewPosts () {
    jQuery('div.tracked_tags > div').each(function (i) {
        var thisIndex = jQuery(this).index();
        if (jQuery(this).find('small').length){

            var postCount = jQuery(this).find('small').contents().clone();
            //alert('Hey'+postCount.html()+''+thisIndex+'');

            jQuery('div#right_column ul#tracked_tags li:eq('+thisIndex+')').find('.count').contents(postCount);
            //setTimeout(arguments.callee, 30000);
        }
    });
};

NewPosts ();
于 2012-10-04T03:53:32.213 に答える