полчаса возился) заинтересовало.
почему ,интересно,не работает фича через $(el).add(i) ( читай :
$.add() ) в цикле ???
хз
я пробовал и так и сяк
в итоге плюнул на кеш ( я собирал элементы в массив,но понял потом, " а нахрена?" )
вот код,с которым таки не (!) получилось.
<div id="some">
<div class="sm_level_1">s</div>
<div class="sm_level_2">s</div>
<div class="sm_level_3">s</div>
<div class="sm_level_4">s</div>
<div class="sm_level_5">s</div>
<div class="sm_level_6">s</div>
<div class="sm_level_7">s</div>
<div class="sm_level_8">s</div>
<div class="sm_level_9">s</div>
<div class="sm_level_10">s</div>
</div>
скрипт
var fr = 3, // FROM -> с какого
to = 5, // TO -> по какой
pr = ".sm_level_", // префикс класса
some = $( document.getElementById('some') ) // кешируем родительский элем
/*
$(pr+fr++,some) ---> some.find(pr+fr++)
pr+fr++ -----> .sm_level_3,4,5 . с инкрементиком. удобно. заюзали-увеличили
*/
do $(pr+fr++,some).css('color','red');while(fr<=to)
/*
гонялся всегда за умещением кода в одной строчке... маньяк :)
вот тот же цикл ... по-человечески
*/
for(var i = fr; i<=to;i++) {
$(pr+i,some).css('color','red');
}
// рабочее,чуть-чуть. отмечает говнюков с третьего ( sm_level_3) по пятый (sm_level_5) красным цветом
только вот "нипонять", как обернуть их
делается это через
$.wrap()
............
тьфу ты,етить колотить
мануал
var fr = 3,
to = 5,
pr = "sm_level_",
some = $( document.getElementById('some') )
some.find('div').wrap(
function(e){
/*
как получить индекс . sm_level_{NUM} -- этот {NUM}
this ->>> html element
$(this) ->>> jQuery el
$(this).attr('class') ->>> 'sm_level_4'
$(this).attr('class').replace(pr,'') = '4' (строка)
parseInt( $(this).attr('class').replace(pr,'') ) ->>> 4 (циферка)
*/
var inrange = parseInt( $(this).attr('class').replace(pr,'') );
// просто использую её как кеш,чтобы код читался, и чтобы не создавать еще переменных
inrange = inrange >= fr && inrange <= to;
// true , если больше либо равен 3, но меньше либо равен 5.. т.е. 3,4,5
return inrange ? "<s></s>":"";
})
получилось так
<div id="some">
<div class="sm_level_1">s</div>
<div class="sm_level_2">s</div>
<s><div class="sm_level_3">s</div></s>
<s><div class="sm_level_4">s</div></s>
<s><div class="sm_level_5">s</div></s>
<div class="sm_level_6">s</div>
<div class="sm_level_7">s</div>
<div class="sm_level_8">s</div>
<div class="sm_level_9">s</div>
<div class="sm_level_10">s</div>
</div>
увы, обернуть одним дивчиком не знаю,как.. $.add() не работает. попробуй через неё ( или через селекторы
:gt() и
:lt() -> через них у меня тоже не получилось ).
на большее у меня азарта не хватает. спать хочется
мб мой сонный мозг чтото пропустил?
буду рад увидеть , как будет решена эта проблема. спокойной ночи
и еще,
$.index() я не стал использовать не потому что не знал ( а я не знал))) , а потому что
нумерация начинается с единицы ( а может начинаться с тысячи)!