如何使jQuery排序工作与更多的字符
How to make jQuery sorting work with more characters?
使用以下脚本对数据属性
进行排序HTML:<ul id="list">
<div>
<button id="sort" type="button">Sort</button>
</div>
<li class="items" data-sort="1111111111.1111145000">2</li>
<li class="items" data-sort="1111111111.1111144000">1</li>
</ul>
JS:
$( document ).ready(function() {
var $wrapper = $('#list');
$( "#sort" ).click(function() {
$wrapper.find('.items').sort(function (a, b) {
return +a.getAttribute('data-sort') - +b.getAttribute('data-sort');
})
.appendTo( $wrapper );
});
});
小提琴:https://jsfiddle.net/vnk91or8/1/
问题是,似乎可以排序的最大字符数是21。只要我从这个例子中的data-sort属性中删除一个数字,一切工作。
我的脚本有时会生成超过22-25个字符,这是我无法改变的。有没有办法让这个工作与更多的字符?
我建议你把数字分开,然后再比较,这样:
var $wrapper = $('#list');
$("#sort").click(function() {
$wrapper.find('.items').sort(function(a, b) {
var splitA = $(a).data('sort').split('.');
var splitB = $(b).data('sort').split('.');
return splitA[0] == splitB[0] ? splitA[1] - splitB[1] : splitA[0] - splitB[0];
}).appendTo($wrapper);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list">
<li class="items" data-sort="1111111111.1111145000">2</li>
<li class="items" data-sort="1111111111.1111144000">1</li>
</ul>
<div>
<button id="sort" type="button">Sort</button>
</div>
也在JSFiddle
相关文章:
- Javascript键代码捕获非拉丁字符?(还需要在selectize.js中工作)
- 使用javascript限制字符获胜'我不在IE9工作
- 由于存在标签('#')特殊字符,URL无法工作
- jQuery.getJSON无法在具有特殊字符的IE中工作
- 将带有字母字符的字符串参数传递给无法工作的javascript函数
- 由于Javascript,Backspace(删除字符)在Firefox中无法正常工作
- 匹配,除非存在“转义”字符;必须联机和背靠背工作
- 否定字符不能按预期工作?^
- 函数更改字符串中不工作的字符的位置.(JS)
- 转义字符的实现是否在JavaScript和PHP中类似地工作,或者两者的实现是否有任何差异
- 当字符串包含非数字字符时,parseFloat()是如何工作的?
- 连字符不允许jQuery AJAX调用正常工作
- 如何使用Jquery添加'连字符'类到P元素在Joomla中不工作
- 自定义掩码函数不工作时,插入字符在中间Javascript/JQuery
- 正则表达式得到最后2个字符管道不工作
- 替换javascript/jQuery不工作的字符
- 为什么这个正则表达式可以在有或没有转义的连字符/破折号的情况下工作?
- 正则表达式检查前三个字符的数字是不工作的字母
- 如何使jQuery排序工作与更多的字符
- 创建包含字符串单个字符的数组.这些正则表达式是如何工作的