Zor*_*gan 2 javascript sorting jquery
我有一个排序方法,我想根据他们的data-position属性对我的div进行排序.目前,由于某种原因,该功能仅根据第一个数字而不是整数来对div进行排序.这是我的一个例子,html它表明:
HTML
<div class="parent" data-position="1">
...
</div>
<div class="parent" data-position="27">
...
</div>
<div class="parent" data-position="3">
...
</div>
Run Code Online (Sandbox Code Playgroud)
这是js
$('body').on('click', '.new_comments', function(e) {
var divArr = $(".parent");
divArr.sort(function(a, b) {
return $(a).attr('data-position') > $(b).attr('data-position') ? 1: -1;
});
$(".comments_container").append(divArr);
});
Run Code Online (Sandbox Code Playgroud)
知道它为什么这样做以及如何解决它?
$(a).attr('data-position')
Run Code Online (Sandbox Code Playgroud)
Attr将属性值作为字符串返回,因此您要比较字符串而不是数字,这是您所期望的.而不是使用attr()使用data().
$(a).data('position')
Run Code Online (Sandbox Code Playgroud)
两者之间的区别在于jQuery会尝试将属性中的值自动转换为数字(如果可以的话)data().因此,将值转换为数字,您应该看到您期望的排序.
| 归档时间: |
|
| 查看次数: |
331 次 |
| 最近记录: |