gpt4 book ai didi

javascript - jQuery 按不同选项排序

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:39 24 4
gpt4 key购买 nike

例如我有这个结构:

<a href='#' id='by_id'>Sort by id</a>
<a href='#' id='by_author'>Sort by author</a>
<a href='#' id='by_title'>Sort by title</a>
<div id="my_list">
<div data-id='1' data-author='Pushkin'>Fairy Tale</div>
<div data-id='3' data-author='Tolstoy'>Anna Karenina</div>
<div data-id='2' data-author='Doyl'>Fairy Tale</div>
<div data-id='5' data-author='Tarantino'>Kill Bill</div>
<div data-id='9' data-author='Pushkin'>Fairy Tale</div>
</div>

现在我想通过点击我的炫酷链接按标题、ID 或作者对我的 div 进行排序。

这个工作是否有插件,或者在没有任何外部库的情况下很容易实现?

最佳答案

轻巧、简单。试试这个:)

$('#sortables').delegate('a', 'click', function() {
var by = $(this).attr('id').match(/^by_(.*)/i);
if (by)
{
mySort.sort(by[1]);
}
});

var mySort = {

sortables: {
'title': {
method: 'text',
type: 'alpha'
},
'author': {
method: 'attr',
val: 'data-author',
type: 'alpha'
},
'id': {
method: 'attr',
val: 'data-id',
type: 'numeric'
}
},

sort: function(sortBy)
{
if (!mySort.sortables[sortBy]) return;
var sortedElements = [];
var sortVal;

var sort = mySort.sortables[sortBy];

$('#my_list > div').each(function() {

sortVal = $(this)[sort.method](sort.val || null);
sortedElements.push([this, sortVal]);
});

// ">" sorts in ascending order, "<" will sort in descending order.
sortedElements.sort(function(a, b) {
var result;
return (sort.type == 'numeric') ?
a[1] - b[1] :
a[1] > b[1];
});

// Create a new div to replace the old one with
var $newDiv = $('<div id="my_list">');

$(sortedElements).each(function() {
$newDiv.append(this[0]);
});

$('#my_list').replaceWith($newDiv);

}
};

在这里工作 fiddle:http://jsfiddle.net/fHTmQ/3

关于javascript - jQuery <tag> 按不同选项排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5696174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com