我的代码中有这种类似于表的结构。有没有一种漂亮的方法可以选择div中包含的第一个“半”?
<div>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
我可以做典型的div - 孩子,然后数除以2。但我想知道是否有一个基于子间隔位置的选择器。像.find(“span [0-4]”)
答案 0 :(得分:3)
我建议使用.slice()
method。通过访问span
属性检索.length
元素的总数,然后将其除以一半:
var $el = $('div span');
$el.slice(0, Math.ceil($el.length / 2)).addClass('half');
&#13;
div span {
display: inline-block;
height: 20px;
width: 100%;
border: 2px solid;
}
.half {
border: 2px solid #f00;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
&#13;
要访问后半部分,请改为使用以下任一项:
$el.slice(Math.ceil($el.length / 2), $el.length)
$el.slice(-Math.ceil($el.length / 2))