Помогите захватить атрибут сортировки данных в DIV как массив? Jquery / Javascript - PullRequest
0 голосов
/ 27 мая 2011

Я использую сейчас функцию:

<div class='edit' data-sort='1'></div>
<div class='edit' data-sort='4'></div>
<div class='edit' data-sort='7'></div>

<div id="as"></div>




exist = $('.edit').length;

var valuer=new Array();


if(exist > 1) {
valuer = $('div[data-sort]').attr('data-sort');

$('#as').append(valuer);
}

Но массив 'valuer' захватывает только первое значение, добавляя число 1 к div '# как'

Как я могу захватить все значения, а затем добавить их в div '#as'?

Ответы [ 2 ]

1 голос
/ 27 мая 2011

Для этого используйте функцию jQuery's map ():

$('#as').append($('div[data-sort]').map(function() {
    return $(this).attr('data-sort');
}).get().join(','));

Преимущество функции map заключается в том, что вы также можете сортировать значения на лету, как и любой другой массив JavaScript. Например:

$('#as').append($('div[data-sort]').map(function() {
    return $(this).attr('data-sort');
}).get().sort().join(','))
1 голос
/ 27 мая 2011

Вам нужно использовать .each () для зацикливания каждого HTML-элемента, найденного в вашем селекторе.Нравится:

// Edit
var list = [];

$('div[data-sort]').each(function(){
    // Append to #as
    $('#as').append($(this).attr('data-sort'));

    // Stores on list
    list.push(this);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...