jQuery选择器:选取父元素前一个同级元素的子元素。

3

对于以下每个状态块:

<div class="stats">
  <div class="label">
    <span class="goal">10 YEARS OF SOMETHING GOOD</span>
  </div>
  <div class="stat">
    <div class="tri"></div>
  </div>
</div>

我想将tri的右边距设置为前一个goal宽度的一半。使用哪个jQuery选择器可以获取每个tri相对于前一个“goal”?

类似于以下内容:

$(function(){
  $('.tri').css({marginRight: function() {
    return Math.floor($(this).something('.goal').width() / 2) + 'px';
  }})
})
1个回答

4

使用:

$(this).parent().prev().find('.goal').width()

这也可以运行:
$(this).parents('.stats').find('.label > .goal').width()

太棒了,谢谢!我不确定我是否可以使用parent().prev().find(),还是需要链式调用这三个方法。 - user479947
如果在 .stats 中有多个 (label, stat) 对,则后者无法工作。 - Aleksi Yrttiaho
@arby:当然,链式编程是让整个过程变得容易的关键 ;) - fabio
@Aleski:是的,我考虑过那个,但我觉得知道另一个解决方案也很好。 - fabio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接