javascript - 如何使用js正确排序项目
问题描述
我搜索了与此类似的问题,但这些问题并没有解决我的问题。我有一张显示物品的引导卡。而且我有一个过滤器可以通过喜欢的投票来订购这张卡片,但是当我触发 js 功能时,排序效果不佳(看起来它是以随机方式排序)。
html:
<a class="like badge" onclick="vote('{% url 'like_item' pk=item.pk %}', '.liked_item_{{item.id}}', '.disliked_item_{{item.id}}', '.like_{{item.id}}', '.dislike_{{item.id}}')" href="javascript:void(0)">
<span class="liked_item_{{item.id}} liked_votes">
{{ item.count_likes }}
</span>
</a>
js:
if(this.name == 'thumbsUp'){
var thumbsUpOrderedDivs = $divs.sort(function (a, b) {
return $(a).find('.liked_votes').text() < $(b).find('.liked_votes').text();
});
$("#idea-list-group").html(thumbsUpOrderedDivs);
}
解决方案
你应该使用String.prototype.localeCompare()
localCompare:localeCompare() 方法返回一个数字,指示引用字符串是在排序顺序之前还是之后还是与给定字符串相同
if(this.name == 'thumbsUp'){
var thumbsUpOrderedDivs = $divs.sort(function (a, b) {
return ($(a).find('.liked_votes').text() + '').localeCompare($(b).find('.liked_votes').text());
});
$("#idea-list-group").html(thumbsUpOrderedDivs);
}
推荐阅读
- python - 从 main 运行时函数不运行或返回
- php - Shopware6 中具有自定义事件的自定义实体
- c# - 使用 StreamReader 读取编码标识符
- laravel - 如何解决 Laravel 6.0 错误上传文件
- angular - Angular8 RXJS CanDeactivate 在停用前等待可观察的结果
- php - 你好。我正在尝试在 laravel 中为用户和管理员创建一个带有登录/注销的项目。我采用了用户模型
- javascript - 是否有适用于 html 的 Android RecyclerView 等效项?
- jquery - Safari v11+ 不适用于 blueimp/jQuery-File-Upload 插件
- python - 在mac中pip安装mysqlclient时出错
- python - Python3 - CSV Writer 按日期排序