Хорошо!
Используйте метод index()
: http://jsfiddle.net/fPvJK/8/
var selector = "#tab" + (Math.floor($(this).index()/3)+1);
$("#tab1, #tab2, #tab3").removeClass("active");
$(selector).addClass("active");
$(this).index()
равно 0-index
в соответствии с местом в его parent
'childNode
-дереве.
Если мы скажем, что у нас есть элемент номер 3 в домене: (0-index = 2
)
Math.floor(2/3) +1 =
Math.floor(0,67) + 1 =
0 + 1 = 1
Селектор тогда:
#tab1
и снова, если мы возьмем 7-й элемент в дом: 0-index = 6
;
Math.floor(6/3) + 1 =
2 + 1 = 3
это даст нам
var selector = "#tab3";
Или мы могли бы просто Math.ceil
вместо Math.floor + 1
:)
var selector = "#tab" + Math.ceil($(this).index()/3);
$("#tab1, #tab2, #tab3").removeClass("active");
$(selector).addClass("active");
Math.floor округляется вниз, Math.ceil округляется вверх, а Math.round округляется до ближайшего:
Math.floor(2.1); // 2
Math.floor(2.9); // 2
Math.ceil(2.1); // 3
Math.ceil(2.9); // 3
Math.round(2.1); // 2
Math.round(2.9); // 3
примечание: использование round
с .5
округлением вверх.
Math.round(2.5) // 3