|
在Discuz二次开发中,有这么一个分类需求,UL中有多个LI,并且LI中有<A>标签,当用户点击这个A标签中的某一个时,需要将这个点击的LI标签元素移到最前面。
- <ul class="cl tbmu brand-list collapsed" style="max-height: 30px; overflow: hidden; transition: max-height 0.3s;">
- <li class="a"><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&filter=sort&comcategory=all" class="xi2" style="font-weight: 800;">不限</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=5" class="xi2">知识_经验</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=7" class="xi2">技术_讨论</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=8" class="xi2">资料_电路图</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=10" class="xi2">固件</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=1" class="xi2">评测(详细)</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=6" class="xi2">实测(简单)</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=3" class="xi2">制作_改装</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=2" class="xi2">维修</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=4" class="xi2">校准_调试</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=9" class="xi2">展示_拆机</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=998" class="xi2">仪表周边</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=1000" class="xi2">其它</a></li>
- <li><a href="http://www.dt830.com/forum.php?mod=forumdisplay&fid=37&filter=sortid&sortid=4&searchsort=1&comcategory=1001" class="xi2">求助</a></li>
- </ul>
复制代码
下面的代码是查找和移动LI
- document.addEventListener('DOMContentLoaded', function() {
- const brandLists = document.querySelectorAll('ul.brand-list');
-
- brandLists.forEach(list => {
- //得到一个UL中所有的LI,并查找
- var items_LI=list.getElementsByTagName("li");
- var liparentNode, newLiFirst;
- for (var i = 0; i < items_LI.length; i++)
- {
- if (items_LI[i].className === "a")
- {
- if(i == 0) break;//选择的就是第一个,不需要处理
-
- liparentNode = items_LI[i].parentNode;
- newLiFirst = items_LI[i];
- liparentNode.removeChild(items_LI[i]);
- liparentNode.prepend(newLiFirst);
- break;
- }
- }
- var items_a=list.getElementsByTagName("a")[0];
- items_a.style.fontWeight = "800";
- items_LI[0].className = "a";
- });
- });
- </script>
复制代码
|
|