我已经完成了对所选项目和未选择项目进行分组的功能,但我需要按字母顺序对它们进行排序。 我的js代码如下所示:
$("#id").multiselect({
beforeopen: function (event, ui) {
var selected = $("#id option:selected");
selected.remove();
$("#id").prepend(selected);
$("#id").multiselect('refresh');
}
});
我怎样才能做到这一点?
答案 0 :(得分:0)
这是一种很好的( - )方式:
$("#clickity").click(function() {
$("#derp>span").sort(function(a,b) {
return (a.textContent || a.innerText).localeCompare(b.textContent || b.innerText);
}).prependTo("#derp");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="derp"><span>g</span><span>o</span><span>t</span><span>h</span><span>s</span></div>
<button id="clickity">Sort!</button>
这将:
在此示例中找到匹配的元素(span
s,使用您的:selected
选择器作为真实内容)
根据textContent
(或innerText
对旧版浏览器对元素进行排序 - 这比创建jQuery对象只是为了得到.text()
)
再次将它们添加到容器中。
请注意,您不需要.remove()
它们,因为在某处附加(或在此情况下,预先添加)某个元素实际上会将其从原始位置移开。