使用jQuery在同一个包装器中使用另一个DIV中的内容填充DIV

时间:2012-08-06 11:53:59

标签: jquery this selector

我一直在使用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。它可能与滥用“这个”有关,但不确定......

由于

5 个答案:

答案 0 :(得分:3)

在您的代码中

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

$(this)未定义。

试试这个:

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

SEE DEMO

答案 1 :(得分:1)

您可以将函数传递给.html(),并且该函数this内部将引用具有其HTML集的当前元素。例如:

$('span.trainingHeaderCount').html(function() {
    return $(this).parent().parent().find('span.postCount').html();
});

答案 2 :(得分:0)

试试这个

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

$.each(spans,function(){
   $(this).html( $(this).parent().next().html() );      
});

答案 3 :(得分:0)

试试这个:

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

DEMO

答案 4 :(得分:0)

如果你把你的包装器变成一个类,这会更好一些,这样你就可以在页面上有多个:(你必须把#wrapper改成.wrapper)

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

这样你可以在页面上移动标记,如果你需要将跨度改为div和back等等。