jQuery查找排序子元素后仅追加前N个(如前5个)子元素的实现方法
实现方案
你只需要在排序完成后的jQuery元素集合上调用slice(0, 5)截取前5个元素,再执行追加操作即可,完整修正代码如下:
$('#parentElement').find('.childElement').sort(function(a, b) { var contentA = parseInt($(a).attr('data-name')); var contentB = parseInt($(b).attr('data-name')); return (contentA < contentB) ? 1 : (contentA > contentB) ? -1 : 0; }).slice(0, 5).appendTo('#parentElement');
逻辑说明
sort()方法执行后会返回按自定义规则完成排序的jQuery元素集合,你原有规则是按data-name属性值降序排列slice(0, 5)会从排序后的集合中,从索引0位置开始截取共5个元素,也就是排序结果的前5项- 最终
appendTo()只会操作这部分被截取到的元素,将它们追加到目标父元素中,剩余匹配到的子元素不会被执行追加操作
注意:如果你的需求是父元素最终只保留这排序后的5个子元素,需要在执行追加前先调用
$('#parentElement').empty()清空原有内容,再执行上述追加逻辑,避免父元素残留其他未被选中的子元素。
内容的提问来源于stack exchange,提问作者Nurul Alam Ador
相关产品推荐
相关产品推荐

