Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数字顺序超过个位数_Javascript_Sorting - Fatal编程技术网

Javascript 数字顺序超过个位数

Javascript 数字顺序超过个位数,javascript,sorting,Javascript,Sorting,应如何更改此代码以正确地按数字和字母顺序排列/排序?此解决方案不适用于超过100个项目 到目前为止,我能实现的唯一可行的解决方案是为所有项目提供一个三位数的数字,例如001,但这并不完美。globalhungerindex.org/countries.html使用parseFloat()函数解析数值 $('#numBnt').on('click', function () { var numericallyOrderedDivs = $divs.sort(function (a, b)

应如何更改此代码以正确地按数字和字母顺序排列/排序?此解决方案不适用于超过100个项目

到目前为止,我能实现的唯一可行的解决方案是为所有项目提供一个三位数的数字,例如001,但这并不完美。globalhungerindex.org/countries.html

使用
parseFloat()
函数解析数值

$('#numBnt').on('click', function () {
    var numericallyOrderedDivs = $divs.sort(function (a, b) {
        return parseFloat($(a).find("h2").text()) > parseFloat($(b).find("h2").text());
    });
    $("#container").html(numericallyOrderedDivs);
});

元素的
文本
始终是字符串。要将其转换为数字,您需要将其转换为
数字

Number("20") = 20
var$divs=$(“div.box”);
$('alphBnt')。在('click',函数(){
var alphamocallyordereddivs=$divs.sort(函数(a,b){
返回$(a).find(“h1”).text()>$(b).find(“h1”).text();
});
$(“#container”).html(按字母顺序排列);
});
$('#numBnt')。在('click',函数(){
var numericalyordereddivs=$divs.sort(函数(a,b){
返回编号($(a).find(“h2”).text())>Number($(b).find(“h2”).text());
});
$(“#container”).html(numericalyordereddivs);
});
正文{
背景:#eee;
字体系列:无衬线;
}
.盒子{
背景:红色;
高度:200px;
宽度:200px;
}
.框h1{
颜色:白色;
字体大小:3.5em;
文本对齐:居中;
}
.方框h2{
颜色:黑色;
字号:2.5em;
文本对齐:居中;
}

按字母顺序排列的
数字的
B
10.35
A.
119
D
2.
C
20

请注意,此更改修复了Chrome中的一些错误(但不是排序问题)$(窗口)。加载(函数(){var$divs=$(“div.box”);$('#alphBnt')。在('click',函数(){var alphalcomcallyordedivs=$divs.sort(函数(a,b){return($(a).find(“h1”).text()>$(b)。查找(“h1”);$”(“container”).html在('click',function(){var numericalyordereddivs=$divs.sort(function(a,b){return($(a).find(“h2”).text()>$(b.find(“h2”).text()?1:-1)});$(“#container”).html(numericalyordereddivs);});请编辑您的问题,而不是添加comments@RorySturdy你试过代码片段了吗?它似乎对我有用。@RoryStrudy你能帮我把你的代码放在JSFIDLE中吗?当然,这是你的代码,不能处理100多个项目:这是我的代码,可以,但我必须把每个数字都键入三位数字,这不太好:注意:I包括一个空白条目和十四个不需要编号的条目。这些条目以数字顺序出现,这是正确的。
Number("20") = 20