Jquery 根据子节点按ASC或DESC顺序排列div';什么是数值?

Jquery 根据子节点按ASC或DESC顺序排列div';什么是数值?,jquery,Jquery,如何使用jquery通过asc和desc更改每个html包装一个内部标记值 <div class="wrap_0"> <div class="sort_by">0</div> </div> <div class="wrap_1"> <div class="sort_by">3</div> </div> <div class="wrap_2"> <div cla

如何使用jquery通过asc和desc更改每个html包装一个内部标记值

<div class="wrap_0">
    <div class="sort_by">0</div>
</div>
<div class="wrap_1">
    <div class="sort_by">3</div>
</div>
<div class="wrap_2">
    <div class="sort_by">1</div>
</div>

0
3.
1.
改为

<div class="wrap_0">
    <div class="sort_by">0</div>
</div>
<div class="wrap_2">
    <div class="sort_by">1</div>
</div>
<div class="wrap_1">
    <div class="sort_by">3</div>
</div>

0
1.
3.
现在我只能找到一种方法来对一个包裹的内部div进行排序

var items = $('.wrap div').get();
items.sort(function(a,b){
    var keyA = $(a).text();
    var keyB = $(b).text();

if (keyA < keyB) return -1;
if (keyA > keyB) return 1;
    return 0;
});
var wrap = $('.wrap');
$.each(items, function(i, sort_by){
    wrap.append(sort_by);
});
var items=$('.wrap div').get();
项目.排序(功能(a,b){
var keyA=$(a).text();
var keyB=$(b).text();
if(keyAkeyB)返回1;
返回0;
});
var wrap=$('.wrap');
$。每个(项目、功能(i、排序依据){
wrap.append(排序依据);
});

这个怎么样?它获取类以
wrap\u
开头的所有元素,查找类为
sort\u by
的子div,并比较每个元素。排序后,它将遍历每个元素,并按正确顺序将其附加到父/包装器元素(在本例中为
body
):

$("div[class^='wrap_']").get().sort(function(a, b) {
   var idx = parseInt($(a).find(".sort_by").text(),10);
   var idx2 = parseInt($(b).find(".sort_by").text(),10);
   return idx > idx2;
}).each(function() {
   $(this).appendTo("body");
});

请参见

这里有一个简单的解决方案,即使元素不在主体的根或不是其容器的第一个元素,该解决方案也会起作用:

var s = $('[class^=wrap_]').get().sort(function(a,b){
   return parseInt($('.sort_by', a).html(),10)-parseInt($('.sort_by', b).html(),10)
});
for (var i=s.length;i>0;i--) $(s[i]).insertAfter(s[0]);

如果您发布到目前为止已经尝试过的jQuery代码,我会很高兴。我已经更新了问题,我不知道怎么做。。。。。有什么线索吗?你的问题标题太令人困惑了,伙计,我已经更改了,请接受编辑。@RutwickGangurde谢谢!在比较文本时,您应该小心:“11”<“3”您知道如何使用输入值而不是.html()来实现这一点吗?我尝试使用.val(),但它不起作用。请看这里更新的fiddle:注意,我没有优化代码。如果有数百个元素要排序,那么缓存解析后的值可能会很有趣。。。。我是新手这是我很难理解这段代码,但我试图找出。。。谢谢