Массив из значений eq()
Делаю выборку нескольких элементов по их номеру в DOM и выделяю их цветом.
$('path').eq(12).attr('fill', '#52BAED'); $('path').eq(12).attr('fill', '#52BAED'); $('path').eq(13).attr('fill', '#52BAED'); $('path').eq(0).attr('fill', '#52BAED'); $('path').eq(18).attr('fill', '#52BAED'); $('path').eq(38).attr('fill', '#52BAED'); Если их количество увеличивается, получается не очень удобно. Как можно все организовать с помощью массива? |
Как-то так наверное.
var select=[12,13,0,18]; for (var i in select) $('path').eq(i).attr('fill', '#52BAED'); Поправленная версия. Типо так быстрее. var select=[12,13,0,18]; var path=$('path'); for (var i in select) path.eq(i).attr('fill', '#52BAED'); |
Элементы теперь определяются некорректно
http://scriptology.ru/map/ |
Это я ступил))
Вот так должно работать. var select=[12,13,0,18]; var path=$('path'); for (var i=0;i<path.length;i++) path.eq(select[i]).attr('fill', '#52BAED'); |
Как насчет использовать filter:
var select = [ 12, 13, 0, 18 ]; $('path').filter( handler ).attr('fill', '#52BAED'); function handler( index ){ return select.indexOf( index ) != -1; }; |
Способ с for работает) Спасибо!
Вот что получается http://scriptology.ru/map/ |
Часовой пояс GMT +3, время: 11:40. |