<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <ul id="myList"> <li id="item1">项目 1</li> <li id="item3">项目 3</li> <li id="item2">项目 2</li> <li id="item4">项目 4</li> </ul> <script> function sortAndReturnTextContent() { const items = document.getElementById('myList').children;//获取所有子节点为一个数组 console.log(items)//打印测试获取到的数组 let arr = []//设置一个空数组 for(let i = 0;i<items.length;i++) { //console.log(items[i].id.charAt(items[0].id.length-1)); arr[i] = Number(items[i].id.charAt(items[i].id.length-1)) }//将所有id的最后一个数字拿出来变成一个新数组 console.log(arr);//打印测试结果为1324 console.log(arr.sort());//运用sort方法来从小到大排序 console.log(arr);//打印测试新数组变成了1234 let newArr = arr.map(function(num){ return "item" + num })//运用map方法处理数组中的每一个数字变成'item+数字'的形式 console.log(newArr);//打印测试新数组变成了['item1','item2','item3','item4'] newArr.forEach(item => { const li = document.createElement('li') li.id = item li.innerText = '项目' + ' ' + (newArr.indexOf(item) + 1) document.getElementById('myList').appendChild(li) }) //循环数组newArr,每次创建一个新的li, //li的id为每一个元素,li的innerText为'项目+空格+数字(当前元素的index+1)' //然后将每一个li插入到ul中 } sortAndReturnTextContent() </script> </body> </html>