Как отсортировать DIV OnClick Jquery по значению пользовательского атрибута? - PullRequest
2 голосов
/ 21 мая 2011

Этот код отлично работает для сортировки динамически созданного div:

<div id='1'>a</div>
<div id='2'>b</div>
<div id='3'>c</div>
<div id='4'>d</div>
<div id='5'>e</div>

<div id="addnew">Add New</div>



   $('#addnew').live('click',function() {

    newdiv = $("<div id='4'>AA</div>");

    div_id_after = Math.floor(parseFloat(newdiv.get(0).id));

    $('#'+div_id_after).after(newdiv);

});

Все, что я хочу сделать, - это взять эту же функцию и заставить ее использовать собственный атрибут «data-sort =» вместоID.

С уважением

Ответы [ 2 ]

2 голосов
/ 21 мая 2011

Из вашего элемента вы можете использовать getAttribute().

var elem = newdiv.get(0);

var div_id_after = elem.getAttribute('data-sort');

Или с jQuery вы можете использовать метод .data().

var div_id_after = newdiv.data('sort');

Это работаетпотому что jQuery поддерживает атрибуты HTML5 data и в старых браузерах.

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

просто используйте newdiv.attr ('data-sort'), чтобы получить доступ к пользовательскому атрибуту вашего div

ОБНОВЛЕНИЕ:

Действительно, если позже вы захотите перебрать все элементы div и использоватьАтрибут 'data-sort' для сортировки, используя jQuery, вы бы сделали что-то вроде:

$("div.sortableDivClass").each(function(index, item) {
   var order = item.getAttribute('data-sort');
   // do the reshuffle based on the order
    ...


});
...