gpt4 book ai didi

jquery - 根据元素的数据属性对 div 进行排序

转载 作者:行者123 更新时间:2023-12-01 02:02:39 24 4
gpt4 key购买 nike

我需要能够根据子元素的 data-price 属性对 div 列表进行排序。这是我的标记:

<div class="container">
<div class="terminal" data-price="195">
<h3>195</h3>
</div>
195 - I should come in 2nd.
</div>

<div class="container">
<div class="terminal" data-price="220">
<h3>220</h3>
</div>
220 - I should come in 3rd.
</div>

<div class="container">
<div class="terminal" data-price="130">
<h3>130</h3>
</div>
130 - I should come in 1st.
</div>

这是我到目前为止的脚本:

function sorter(a, b) {
return a.getAttribute('data-price') - b.getAttribute('data-price');
};
$(document).ready(function () {
var sortedDivs = $(".terminal").toArray().sort(sorter);
$.each(sortedDivs, function (index, value) {
$(".container", this).html(value);
//console.log(value);
});
});

结果应替换现有标记。我就是没法去上类。需要改变什么?

Here's a fiddle .

最佳答案

以下应该有效:

$('.container').sort(function (a, b) {
return $(a).find('.terminal').data('price') - $(b).find('.terminal').data('price');
}).each(function (_, container) {
$(container).parent().append(container);
});

尽管我建议不要在没有共同 parent 的情况下这样做。如果存在其他子节点,则 $(container).parent().append(container); 部分可能会出现问题。

演示:http://jsbin.com/UHeFEYA/1/

<小时/>

或者你可以这样做:

$('.terminal').sort(function (a, b) {
return $(a).data('price') - $(b).data('price');
}).map(function () {
return $(this).closest('.container');
}).each(function (_, container) {
$(container).parent().append(container);
});

关于jquery - 根据元素的数据属性对 div 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18847712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com