jquery代码优化重构
vara_d2=$("#navli").find("a[rel^='dropmenu2']");$("#dropmenu2").insertAfter(a_d2);var...
var a_d2 = $("#nav li").find("a[rel^='dropmenu2']");
$("#dropmenu2").insertAfter(a_d2);
var a_d3 = $("#nav li").find("a[rel^='dropmenu3']");
$("#dropmenu3").insertAfter(a_d3);
var a_d4 = $("#nav li").find("a[rel^='dropmenu4']");
$("#dropmenu4").insertAfter(a_d4);
var a_d5 = $("#nav li").find("a[rel^='dropmenu5']");
$("#dropmenu5").insertAfter(a_d5);
var a_d6 = $("#nav li").find("a[rel^='dropmenu26']");
$("#dropmenu26").insertAfter(a_d6);
<ul id="nav" class="sl-floatcenter">
<li class="left-home"></li>
<li class="a-level-menu"><a href="/">首页</a></li>
<li class="a-level-menu"><a href="/list-2.html" rel="dropmenu2">XXX</a></li>
<li class="a-level-menu"><a href="/list-3.html" rel="dropmenu3">XXX</a></li>
<li class="a-level-menu"><a href="/list-4.html" rel="dropmenu4">XXX</a></li>
<li class="a-level-menu"><a href="/list-5.html" rel="dropmenu5">XXX</a></li>
<li class="a-level-menu this"><a href="/list-26.html" rel="dropmenu26">XXX</a></li>
</ul>
根据ul标签的rel属性,找到元素,并把这个元素的html插到相同rel属性a标签的后面,rel的属性是不规则的数字标识;上面的html只贴出了a的标签,相应的要查找的ul的标签没有贴出来;上面给出的JS可以实现这个功能,但想通过for循环或其他优化方式,进行重写;希望大家给出可实现的jquery代码;解释型的回答就不用了,需要根据以上内容给出代码来;谢谢!! 展开
$("#dropmenu2").insertAfter(a_d2);
var a_d3 = $("#nav li").find("a[rel^='dropmenu3']");
$("#dropmenu3").insertAfter(a_d3);
var a_d4 = $("#nav li").find("a[rel^='dropmenu4']");
$("#dropmenu4").insertAfter(a_d4);
var a_d5 = $("#nav li").find("a[rel^='dropmenu5']");
$("#dropmenu5").insertAfter(a_d5);
var a_d6 = $("#nav li").find("a[rel^='dropmenu26']");
$("#dropmenu26").insertAfter(a_d6);
<ul id="nav" class="sl-floatcenter">
<li class="left-home"></li>
<li class="a-level-menu"><a href="/">首页</a></li>
<li class="a-level-menu"><a href="/list-2.html" rel="dropmenu2">XXX</a></li>
<li class="a-level-menu"><a href="/list-3.html" rel="dropmenu3">XXX</a></li>
<li class="a-level-menu"><a href="/list-4.html" rel="dropmenu4">XXX</a></li>
<li class="a-level-menu"><a href="/list-5.html" rel="dropmenu5">XXX</a></li>
<li class="a-level-menu this"><a href="/list-26.html" rel="dropmenu26">XXX</a></li>
</ul>
根据ul标签的rel属性,找到元素,并把这个元素的html插到相同rel属性a标签的后面,rel的属性是不规则的数字标识;上面的html只贴出了a的标签,相应的要查找的ul的标签没有贴出来;上面给出的JS可以实现这个功能,但想通过for循环或其他优化方式,进行重写;希望大家给出可实现的jquery代码;解释型的回答就不用了,需要根据以上内容给出代码来;谢谢!! 展开
1个回答
展开全部
var $masterUL =$('#nav'),
$rels = $('#nav').find('[rel^="dropmenu"]');
$rels.each(function(i,el){
var index = $(el).attr('rel').replace('dropmenu','');
$("#dropmenu"+index).insertAfter(el);
});
再短点就是
$('#nav').find('[rel^="dropmenu"]').each(function(i,el){
$("#dropmenu"+$(el).attr('rel').replace('dropmenu','')).insertAfter(el);
});
$rels = $('#nav').find('[rel^="dropmenu"]');
$rels.each(function(i,el){
var index = $(el).attr('rel').replace('dropmenu','');
$("#dropmenu"+index).insertAfter(el);
});
再短点就是
$('#nav').find('[rel^="dropmenu"]').each(function(i,el){
$("#dropmenu"+$(el).attr('rel').replace('dropmenu','')).insertAfter(el);
});
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询