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 中。这可能与滥用“this”有关,但不确定..

谢谢

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 回答