Массив из значений 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, время: 18:09. |