Javascript 根据给定数组元素的顺序对列表重新排序

Javascript 根据给定数组元素的顺序对列表重新排序,javascript,jquery,arrays,Javascript,Jquery,Arrays,我想用下面的代码对给定的HTML重新排序 函数重新排序(){ var nav_组={ 礼品卡:“/shop/GIFT certificate/GIFT CARD.html”, LOOK_BOOKS:“/lookbooks”, 服装:“/商店/服装”, 服装:“/商店/服装/服装”, 鞋类:“/商店/鞋类”, 珠宝:“/商店/珠宝”, 附件:“/商店/附件”, 包和钱包:“/商店/手提包”, 礼品装饰:“/商店/礼品家居装饰”, 销售:“/商店/销售” }; var订单=[“服装”、“礼品卡”、

我想用下面的代码对给定的HTML重新排序

函数重新排序(){
var nav_组={
礼品卡:“/shop/GIFT certificate/GIFT CARD.html”,
LOOK_BOOKS:“/lookbooks”,
服装:“/商店/服装”,
服装:“/商店/服装/服装”,
鞋类:“/商店/鞋类”,
珠宝:“/商店/珠宝”,
附件:“/商店/附件”,
包和钱包:“/商店/手提包”,
礼品装饰:“/商店/礼品家居装饰”,
销售:“/商店/销售”
};
var订单=[“服装”、“礼品卡”、“外观书”、“连衣裙”、“鞋类”、“配饰”、“珠宝”、“包和钱包”、“礼品装潢”、“销售”];
$。每个(顺序、函数(索引、值){
var-nav_link=nav_组[值];
var nav_group_selector=$(“.menu li>a[href=”“+nav_link+“]”)。最近(“.menu li”);
如果(导航组选择器长度!==0){
$(“.menu所有页面容器>.menu”).append(导航组选择器);
}
});
返回true;
}


首先,确保在某处调用了
reOrder()
函数。例如,在最后一个
div
元素之后添加此代码

<script>reOrder();</script>
reOrder();
接下来,您的代码将按预期工作,但:

-它找到“服饰”并附加它

-它找不到“礼品卡”,因为您在html中写入
shop/gift-certificate/gift-card.html时搜索
/shop/gift-certificate/gift-card.html
(开头为“否”)

-它在开始时找不到相同“/”的“查找手册”(
/lookbooks
vs
lookbooks

-它找到“Sale”并附加它


只需删除那些不需要的“/”(或在href中添加它们),就可以开始了

@Nomis提到了所有关键点。我只是把它们变成了这把小提琴。这项工作:

函数重新排序(){
var nav_组={
礼品卡:“商店/礼品券/礼品卡.html”,
LOOK_BOOKS:“lookbooks”,
服装:“商店/服装”,
服装:“商店/服装/服装”,
鞋类:“商店/鞋类”,
珠宝:“商店/珠宝”,
附件:“商店/附件”,
包和钱包:“商店/手提包”,
礼品装饰:“商店/礼品家居装饰”,
销售:“商店/销售”
};
var订单=[“服装”、“礼品卡”、“外观书”、“连衣裙”、“鞋类”、“配饰”、“珠宝”、“包和钱包”、“礼品装潢”、“销售”];
美元。每个(订单、功能(i