0

私はしばらくjQueryを使用していましたが、これについて頭を悩ませているようには見えません...

私は次のようなHTMLレイアウトを持っています:

  <div id="wrapper">
            <div class="accordionButton">
              <h2 class="profiletitles">Requested <?php $count = 0; ?></h2>
              <span class="trainingHeaderCount"></span>
            </div>
            <span class="postCount">12</span>
</div>

そして、 に を入力しようとして<span class="trainingHeaderCount"></span><span class="postCount">12</span>ます。

私がこれまでに持っているものは次のとおりです。

$('span.trainingHeaderCount').html($(this).parent().parent().find('.postCount').html());

しかし、DIVには何もロードしていません。「これ」の誤用と関係があるかもしれませんが、確かではありません..

ありがとう

4

5 に答える 5

3

あなたのコードで

$('span.trainingHeaderCount').html($(this).parent().parent().find('.postCount').html());

$(this)未定義です。

これを試して:

$this = $('.trainingHeaderCount')
$this.html($this.parent().parent().find('.postCount').html());​

デモを見る

于 2012-08-06T11:59:53.217 に答える
1

関数を に渡すことができます。.html()その関数の内部ではthis、HTML が設定されている現在の要素が参照されます。例えば:

$('span.trainingHeaderCount').html(function() {
    return $(this).parent().parent().find('span.postCount').html();
});
于 2012-08-06T12:00:26.647 に答える
0

これを試して

var spans = $('span.trainingHeaderCount');

$.each(spans,function(){
   $(this).html( $(this).parent().next().html() );      
});
于 2012-08-06T11:58:06.863 に答える
0

これを試して:

$('span.trainingHeaderCount').html(function(){
     return $(this).parent().siblings('.postCount').text()
})

デモ

于 2012-08-06T12:00:10.533 に答える
0

これは、ラッパーをクラスにした場合にうまく機能します。そのようにして、ページに複数のクラスを含めることができます: (#wrapper を .wrapper に変更する必要があります)

 ​$('#wrapper').each(function(index, element){
    $(element).find('.trainingHeaderCount').html($(element).find('.postCount').html());
    });​​​​​​​​​​​​​​​

このようにして、スパンを div に変更したり元に戻したりする必要がある場合に、ページ上でマークアップを移動できます。

于 2012-08-06T12:06:32.657 に答える