javascript – 如何使用jquery对具有本地字符的项目进行排序?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何使用jquery对具有本地字符的项目进行排序?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1711字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何使用jquery对具有本地字符的项目进行排序?](/upload/InfoBanner/zyjiaocheng/727/af69853885414c38b23cb07ad57769cd.jpg)
我想按字母顺序对上面的div进行排序并使用以下代码:
$('#btnabc').click(function(){
$('.item').sort(function(a, b) {
if (a.textContent < b.textContent) {return -1;}
else {return 1;}
}).appendTo('#panelb');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='panelb'>
<div class='item'>zaba</div>
<div class='item'>?aba</div>
<div class='item'>ciao</div>
<div class='item'>?ao</div>
<div class='item'>suma</div>
<div class='item'>?uma</div>
</div>
它有效,但具有本地字符的项目未正确排序.
基本上,在排序过程中我需要:
`?` - to be considered as - `z`
`?` and `?` - to be considered as - `c`
`?` - to be considered as - `s`
`?` - to be considered as - `d`
有帮助吗?
解决方法:
四件事:
>您的代码始终返回-1或1.有时它应返回0,例如,当项目相同时.
>使用String#localeCompare获取区域设置敏感的比较.
>正式来说,jQuery没有排序方法,因此使用它是一个坏主意(一般情况下使用未记录的方法).请改用Array#sort.
> textContent不是跨浏览器可靠的.既然你已经使用了jQuery,我会使用$(a).text()而不是a.textContent.
所以:
var items = $('.item').get();
items.sort(function(a, b) {
return $(a).text().localeCompare($(b).text());
});
$('#panelb').append(items);
(这可以写成一个单独的陈述,但为了清楚起见,我使用了三个.)
例:
$('#btnabc').click(function(){
var items = $('.item').get();
items.sort(function(a, b) {
return $(a).text().localeCompare($(b).text());
});
$('#panelb').append(items);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='panelb'>
<div class='item'>zaba</div>
<div class='item'>?aba</div>
<div class='item'>ciao</div>
<div class='item'>?ao</div>
<div class='item'>suma</div>
<div class='item'>?uma</div>
</div>
<input type="button" id="btnabc" value="Click me">
内容总结
以上是互联网集市为您收集整理的javascript – 如何使用jquery对具有本地字符的项目进行排序?全部内容,希望文章能够帮你解决javascript – 如何使用jquery对具有本地字符的项目进行排序?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。