Javascript 如何在jQuery中按值对子项排序

Javascript 如何在jQuery中按值对子项排序,javascript,jquery,Javascript,Jquery,我有一些与跨度值相关的链接,我想按这些链接进行排序 在这个例子中,我想按数量排序 HTML: 说 '[object HTMLCollection]' is not a function (evaluating 'entries[i].children('span.amount')') 怎么了?为什么我不能将金额的值添加到排序数组中?执行以下操作: var value = $(entries[i]).children('span.amount').val(); 现在,您正在包装要与jquer

我有一些与跨度值相关的链接,我想按这些链接进行排序

在这个例子中,我想按数量排序

HTML:

'[object HTMLCollection]' is not a function (evaluating 'entries[i].children('span.amount')')
怎么了?为什么我不能将金额的值添加到排序数组中?

执行以下操作:

var value = $(entries[i]).children('span.amount').val();

现在,您正在包装要与jquery方法一起使用的
条目[i]

如果您需要对列表进行排序,我认为如果您使用一些jquery功能,它会简单得多:

$('#sortamount').on('click', function () {
    $('.entrylink').sort(function(a, b) {
        return $(a).find('.amount').text() - $(b).find('.amount').text();
    })
    .appendTo('#entrytable');
});
演示:
我用CSS制作了
一个
块,以方便摆脱

标签。

这是必要的吗?我可以不使用javascript.jquery()吗?我的意思是条目[I].children()也应该有效,不是吗?我相信在
.filter()
回调中也会出现同样的问题。将
this.children(…)
$(this.children(…)
交换--也就是说,OP似乎没有使用返回的(筛选的)集合进行任何操作?或者我遗漏了什么。是的,使用jquery的methods@C-链接如果他使用了
var entries=$(“.entrylink”)
,然后使用
entries.eq(i)
,那么它已经是jquery对象了。更常见的方法是使用jquery的
.each()
。你的代码提供了什么?糟糕,我重构了代码。你能解释一下
如何返回$(a).查找('.amount').text()-$(b).查找('.amount').text()有效?我在这里发布了以下跟踪:
'[object HTMLCollection]' is not a function (evaluating 'entries[i].children('span.amount')')
var value = $(entries[i]).children('span.amount').val();
$('#sortamount').on('click', function () {
    $('.entrylink').sort(function(a, b) {
        return $(a).find('.amount').text() - $(b).find('.amount').text();
    })
    .appendTo('#entrytable');
});