Получить элементы внутри блока по порядку и присвоить свое значение
Добрый день. Есть следующий кусок html:
<div class="task-list"> <div id="task-1" class="task" data-name="category"> <p>Категории</p> <a href="#" class="icon-pencil">✎</a> </div> <div id="task-2" class="task" data-name="size"> <p>Размер</p> <a href="#" class="icon-pencil">✎</a> </div> <div id="task-3" class="task" data-name="color"> <p>Цвет</p> <a href="#" class="icon-pencil">✎</a> </div> <div id="task-4" class="task" data-name="brend"> <p>Производитель</p> <a href="#" class="icon-pencil">✎</a> </div> </div> Как последовательно получить data-name всех дивов внутри task-list и присвоить им значения? Например, должно получиться: category:10,size:20,color:30,brend:40 Спасибо |
$(function() {
$('[data-name]').each(function() {
var attr = this.getAttribute('data-name') + ':30';
this.setAttribute('data-name', attr)
});
});
|
Спасибо. Правда, я наверно не очень правильно выразил мысль. Мне нужно не изменить data-name, а просто, получить весь список и передать в переменную. В итоге моя переменная на выходе должна содержать category:10,size:20,color:30,brend:40 Чтобы потом обработать через ajax, или есть более элегантное решение?
|
Янковиц,
Некоторые спешат, невнимательно читают условие... Вот верный вариант. :)
$('[data-name]').attr('data-name', function(i, v) {
return v+=':'+(++i*10);
});
|
Не совсем понял как загнать в переменную... Простите, мозк не соображает, а работу делать надо ;)
|
Цитата:
|
Цитата:
var str = $('[data-name]').attr('data-name', function(i, v) {
return v+=':'+(++i*10);
}).map(function(indx, el) {
return $(el).data('name');
}).get().join(',');
|
Цитата:
|
var str = $('[data-name]').attr('data-name', function(i, v) {
return v+=':'+(++i*10);
}).map(function(indx, el) {
return $(el).data('name');
}).get().join(',');
Не совсем понимаю, где здесь переменная |
Янковиц,
снизу - alert(str); |
| Часовой пояс GMT +3, время: 05:31. |