Javascript 按字母顺序对输入无线电框进行排序

Javascript 按字母顺序对输入无线电框进行排序,javascript,jquery,Javascript,Jquery,我试图按字母顺序对这些项目进行排序,但它并没有按照它应该的方式对所有项目进行排序。你能告诉我为什么它不起作用吗? 这是我的小提琴例子 handleAlphaOrder=function(){ 变量fieldItem=$('.field_item'); var sorted=$(fieldItem.toArray().sort(函数a,b){ 返回$(a).find('label').text()>$(b).find('label').text() })); 字段项。每个(功能(i){ $(t

我试图按字母顺序对这些项目进行排序,但它并没有按照它应该的方式对所有项目进行排序。你能告诉我为什么它不起作用吗? 这是我的小提琴例子

handleAlphaOrder=function(){
变量fieldItem=$('.field_item');
var sorted=$(fieldItem.toArray().sort(函数a,b){
返回$(a).find('label').text()>$(b).find('label').text()
}));
字段项。每个(功能(i){
$(this).after(sorted.eq(i));
});
};

女人
女包
珠宝
男人
男用包
男鞋
宝贝
女孩
家
床
厨房
照明
户外的
护发
男士美容
护肤品
生活方式
食品补充剂
治疗
电子学
全部的
女装配件
女装
女鞋
男装配件
男装
孩子们
男孩
玩具
浴缸
儿童之家
家具
装饰
美女
化妆
香水
徖生署;身体
食物及卫生局;饮料
瑜伽
小工具
健身

问题在于,您从不调用
handleAlphaOrder
,只声明它

handleAlphaOrder=function(){
变量fieldItem=$('.field_item');
var sorted=$(fieldItem.toArray().sort(函数a,b){
返回$(a).find('label').text()>$(b).find('label').text()
}));
字段项。每个(功能(i){
$(this).after(sorted.eq(i));
});
};
handleAlphaOrder();//立即调用函数

女人
女包
珠宝
男人
男用包
男鞋
宝贝
女孩
家
床
厨房
照明
户外的
护发
男士美容
护肤品
生活方式
食品补充剂
治疗
电子学
全部的
女装配件
女装
女鞋
男装配件
男装
孩子们
男孩
玩具
浴缸
儿童之家
家具
装饰
美女
化妆
香水
徖生署;身体
食物及卫生局;饮料
瑜伽
小工具
健身

您的排序工作正常,但您没有看到结果,因为您错误地将
字段项添加回DOM。尝试在所有
字段项
div(
radioGroup
在下面的示例中)周围添加一个包装,然后附加到它,而不是尝试覆盖现有div。重叠是造成问题的原因

此外,在比较文本时,您可能应该使用
localeCompare
,而不是
$(b)。查找('label')。text()
返回$(a).find('label').text().localeCompare($(b).find('label').text());
}));
字段项。每个(功能(i){
//$(this).after(sorted.eq(i));
$('#radioGroup').append(sorted.eq(i));
});
};
handleAlphaOrder()

女人
女包
珠宝
男人
男用包
男鞋
宝贝
女孩
家
床
厨房
照明
户外的
护发
男士美容
护肤品
生活方式
食品补充剂
治疗
电子学
全部的
女装配件
女装
女鞋
男装配件
男装
孩子们
男孩
玩具
浴缸
儿童之家
家具
装饰
美女
化妆
香水
徖生署;身体
食物及卫生局;饮料
瑜伽
小工具
健身

fiddle不工作您是否意识到stackoverflow与内置的JSFIDLE具有相同的功能?使用snipplets按钮。不要绕过关于包含代码和链接的消息-请按要求执行。对不起,伙计们,以后我会像那样包含我的代码。看起来他的排序也不正确,但这肯定是主要问题。是的,它不是按字母顺序排序。。我不知道为什么您的
sort()
函数不应该返回
的结果可能有一种更干净的方法来实现这一点,但是即兴的,类似于:将在不添加容器的情况下工作。@PaulRoub我不会解决除OP-ask之外的其他问题。