<div>
<div id="2">海面倒映着美丽的白塔,四周环绕着绿树红墙。<div> <div id="1">小船儿轻轻,飘荡在水中<div> <div id="5">让我们荡起双桨,小船儿推开波浪。<div> <div id="3">红领巾迎着太阳,阳光洒在海面上,<div> <div id="4">迎面吹来了凉爽的风。<div>
<div>
这是一进去的代码,当然我只是示例,这只是一个大的<div>中包裹了这5条,还有很多大div的。
然后我们现在得到一串数组。
var list=[5,2,1,4,3];
这个是对应id,然后要让这5个div按照这个代码重新排序,怎么写啊?
html部分
<div id="divs"> <div id="2">2海面倒映着美丽的白塔,四周环绕着绿树红墙。</div> <div id="1">1小船儿轻轻,飘荡在水中</div> <div id="5">5让我们荡起双桨,小船儿推开波浪。</div> <div id="3">3红领巾迎着太阳,阳光洒在海面上,</div> <div id="4">4迎面吹来了凉爽的风。</div> </div>
js部分
$(document).ready(function(){ var list=[5,2,1,4,3]; var divs = $("#divs div"); var divhtml = ''; for(var a=0;a<list.length;a++){ for(var b=0;b<divs.length;b++){ if(list[a]==$(divs[b]).attr("id")){ divhtml += divs[b].outerHTML; } } } $("#divs").html("").append(divhtml); });
我也是新手 不知道能不能帮上你的忙 其他人有什么建议的也可以提出来优化哈
<div id="main"></div>
var contentArray=['1小船儿轻轻,飘荡在水中','2海面倒映着美丽的白塔,四周环绕着绿树红墙。','3红领巾迎着太阳,阳光洒在海面上,','4迎面吹来了凉爽的风。','5让我们荡起双桨,小船儿推开波浪。']; var indexArray=[5,2,1,4,3]; var html=''; for(var i=0;i<indexArray.length;i++){ var index=indexArray[i]-1; var content=contentArray[index]; html+='<div>'+content+'</div>' }
$('#main').html(html);
var list = [5, 2, 1, 4, 3]; var parent = document.getElementById('divs') sortChildren(parent, list); function sortChildren(parent, indexs) { var nodesWithIndex = []; Array.from(parent.children).forEach(function(e) { var index = indexs.indexOf(parseInt(e.getAttribute('id'))); nodesWithIndex.push({ index: index, node: e }); }); nodesWithIndex.sort(function(a, b) { return a.index - b.index; }); parent.innerHTML = ''; nodesWithIndex.forEach(function(e) { parent.appendChild(e.node); }); }
用片段,根据数组id顺序查 div,然后插入片段,排完再将片段整体添加到父div中