作者:yun建2502930453 | 来源:互联网 | 2023-01-29 09:46
我的Javascript排序功能有问题.以下函数按数据价格属性降序对包装中的项目进行排序.
HTML部分:
JQuery部分:
var $wrapper = $('.wrapper');
$wrapper.find('.item').sort(function (a, b) {
return -a.getAttribute('data-price') - -b.getAttribute('data-price');
}).appendTo($wrapper);
现在我想更改为按数据价格和.blacklisted排序的JQuery部分
目前的回应
希望回复:
Rory McCross..
5
首先请注意,div
HTML 中的元素有两个class
无效的属性.你需要加入他们.
为了达到您的要求,您可以检查元素是否具有blacklisted
该类,然后适当地上/下移动它们.如果你没有班级,你可以按照data-price
现在的方式对它们进行排序.试试这个:
var $wrapper = $('.wrapper');
$wrapper.find('.item').sort(function(a, b) {
if ($(a).hasClass('blacklisted') && !$(b).hasClass('blacklisted'))
return 1;
if ($(b).hasClass('blacklisted') && !$(a).hasClass('blacklisted'))
return -1;
return -a.getAttribute('data-price') - -b.getAttribute('data-price');
}).appendTo($wrapper);
1> Rory McCross..:
首先请注意,div
HTML 中的元素有两个class
无效的属性.你需要加入他们.
为了达到您的要求,您可以检查元素是否具有blacklisted
该类,然后适当地上/下移动它们.如果你没有班级,你可以按照data-price
现在的方式对它们进行排序.试试这个:
var $wrapper = $('.wrapper');
$wrapper.find('.item').sort(function(a, b) {
if ($(a).hasClass('blacklisted') && !$(b).hasClass('blacklisted'))
return 1;
if ($(b).hasClass('blacklisted') && !$(a).hasClass('blacklisted'))
return -1;
return -a.getAttribute('data-price') - -b.getAttribute('data-price');
}).appendTo($wrapper);