我无法使排序功能正常工作。我正在动态创建一个a href
链接列表,我想在追加它们时对其进行排序。这是生成a hrefs的JQuery代码:
var matchScoresText='<a href="#breakdownDialog" data-transition="slidefade" class="ui-btn" data-icon="arrow-r" data-iconpos="right" id="cvResults"> <h3>' + //data-rel="dialog" data-transition="pop"
response.title +
'</h3> <span id="percentageContainer"> ' + response.percentage +
'%</span></a>';
$('#resultsList').append(matchScoresText);
#resultsList
是a hrefs附加到的div元素。添加这些内容后,我尝试按<span>
标记的内容对列表进行排序。这是由response.percentage
填充的,这是一个数字。
orderedLinks=$('#resultsList > a').sort(sortByPercentage);
$('#resultsList').append(orderedLinks);
我无法使排序功能本身正确。目前它看起来像这样:
function sortByPercentage(a, b){
return $('#percentageContainer').text() < $('#percentageContainer').text() ? 1 : -1;
}
我怀疑这是问题所在,但我不确定如何选择#percentageContainer
的内容。
答案 0 :(得分:1)
在sort
处理函数中,您需要使用a
和b
参数提供的值,这些参数与span
中的a
元素相关被迭代。您还需要将值转换为int或float,具体取决于所需的精度。试试这个:
var $orderedLinks = $('#resultsList a').sort(sortByPercentage);
$('#resultsList').append($orderedLinks);
function sortByPercentage(a, b){
return parseFloat($(a).find('span').text()) - parseFloat($(b).find('span').text());
}