插入按字母顺序、javascript或jquery排序的新列表
Insert new list sorted in alphabetical order, javascript or jquery
我有列表,已经按字母顺序排序如下:
<ul>
<li><a href='#'>Apple</a></li>
<li><a href='#'>Banana</a></li>
<li><a href='#'>Grapes</a></li>
<ul>
所以我想添加一个值为Chico
的新列表,所以它应该插入在Banana
和Grapes
之间。。。就像它会消失一样。所以我有一个表格或输入字段来添加一个新的水果列表。。。
有没有什么方法可以使用jquery或javascript来做到这一点?
谢谢!
function sortAlpha(a,b){
return a.innerHTML.toLowerCase() > b.innerHTML.toLowerCase() ? 1 : -1;
}
$("#insert").on('click', function() {
var newLi = $("<li><a href='#'>"+$("#fruit").val()+"</a></li>").hide();
$('li', 'ul').add(newLi.fadeIn(800)).sort(sortAlpha).appendTo('ul');
});
FIDDLE
请参阅此工作Fiddle示例!
此功能将新列表项添加到提供的列表中。添加新项目后,它将按内容对所有项目进行排序。
function addNewListItem($list, $ele) {
// append new element
$list.append($ele);
// get all elements
var listItems = $list.children('li').get();
// sort elements by contents
listItems.sort(function(a, b) {
return $(a).text().toUpperCase().localeCompare($(b).text().toUpperCase());
});
$.each(listItems, function(idx, itm) { $list.append(itm); });
}
示例用法:
//Creating a new item
var $newLI = $('<li/>').append($('<a/>', {"href":'#',"title":''}).html('Chico'));
// adding and sorting
addNewListItem($('ul'), $newLI);
最初的排序功能归功于Dan@onemoretake,通过这个stackoverflow答案。
CSS
.hide {
display: none
}
jQuery
function addListElement(el) {
var lis = $('ul li').add(el).sort(function(a, b) {
return $('a', a).text() > $('a', b).text();
});
$('ul').html(lis).find('.hide').fadeIn(3000, function() {
$(this).removeClass('hide')
});
}
addListElement('<li class="hide"><a href="#">Chico</a></li>');
工作样本
相关文章:
- Knockout js 添加一个新列表
- 如何对现有列表项使用CSS转换来为新列表项腾出空间
- 插入按字母顺序、javascript或jquery排序的新列表
- 尝试将长列表排序为单独的列
- 停止对作为函数参数传递到新列表的对象引用
- 不使用排序数组的动态列表排序
- 在 JavaScript 中创建具有重复列表条目的新列表的最快/推荐方法是什么
- 不是将新列表项推到底部,而是推到顶部
- 在 jQuery 中迭代数组时,每隔一个元素创建新列表
- 使用角度 js 按顺序列表排序
- 如何在JavaScript中重新加载页面以显示新列表
- Meteor-新列表项上的增量计数器:
- 如何将新列表项添加到无序列表中
- 如何使用jquery同位素按日期(新)排序
- 在JavaScript和MySQL中存储列表排序顺序的替代方法
- 如何更新不可变列表以获得新列表
- 单击list item将创建一个具有原始列表项'文本内容的新列表项
- 如何用Vue.js动画化列表排序
- reduce方法创建新列表,为什么未定义
- jQueryUI可排序连接列表-当项目滚动到新列表中时,未触发Over事件