我有一些奇数元素。
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
<div class="line"></div>
我想知道如何在jQuery中为它们提供一个带编号的类,从中间元素开始计算,如下所示:
<div class="line no2"></div>
<div class="line no1"></div>
<div class="line no0"></div>
<div class="line no1"></div>
<div class="line no2"></div>
人
编辑:
之前,我会检查元素的数量。如果金额是偶数值,我会添加一个添加元素,以获得奇数个元素。
我希望获得圆形文字形状like this example (see curve)。行数并不重要,因为中间行<div class="line no0"></div>
将是圆的垂直中心。
答案 0 :(得分:5)
试试这个:
var middle=Math.ceil($("div").length/2);
var divs=$("div.line");
divs.each(function (){
$(this).addClass('no'+Math.abs(middle-(divs.index($(this))+1)));
});
http://jsbin.com/IKiGexIr/5/edit
更短的版本:(PSL)
var middle=Math.ceil($("div").length/2),divs=$("div.line");
divs.addClass(function (i){ return 'no'+ Math.abs(middle-(i+1)); });
答案 1 :(得分:4)
试试这个
var h = parseInt($('.line').length / 2, 10);
$('.line').each(function (i) {
$(this).addClass('no' + (i < h ? h - i : i - h))
})
答案 2 :(得分:3)
试试这样的事情:
$(document).ready(function(){
var indice = 0;
$("div").each(function(){
indice++;
});
var mid = (indice / 2 ).toFixed();
var aux = 1;
var start = mid - 1;
$("div").each(function(){
if(start > -1)
{
$(this).addClass("no"+start);
start --;
}
else
{
$(this).addClass("no"+aux);
aux ++;
}
});
});