浏览器控制台JS 提取章节目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | let topul=document.querySelector( 'ul.tree-ul.tree-top-ul' ); let z1=topul.querySelectorAll( 'li[data-level="1"]' ); txt=[]; i1=0; z1.forEach(x1=>{ i1++; i2=0; //打印一级章节 t1=x1.querySelector( 'a' ).innerText; //console.log('1级标题:',t1); //查找二级章节 z2=x1.querySelectorAll( 'li[data-level="2"]' ); z2.forEach(x2=>{ i2++; i3=0; t2=x2.querySelector( 'a' ).innerText; //console.log('2级标题:',t2); z3=x2.querySelectorAll( 'li[data-level="3"]' ); z3.forEach(x3=>{ i3++; i4=0; t3=x3.querySelector( 'a' ).innerText; //console.log('3级标题:',t3); z4=x3.querySelectorAll( 'li[data-level="4"]' ); if (z4.length!=0){ z4.forEach(x4=>{ i4++; i5=0; t4=x4.querySelector( 'a' ).innerText; //console.log('4级标题:',t4); z5=x4.querySelectorAll( 'li[data-level="5"]' ); if (z5.length!=0){ z5.forEach(x5=>{ i5++; t5=x5.querySelector( 'a' ).innerText; console.log(i1+t1,i2+t2,i3+t3,i4+t4,i5+t5); //txt.push(i1+t1+' '+i1+'.'+i2+t2+' '+i1+'.'+i2+'.'+i3+t3+' '+i1+'.'+i2+'.'+i3+'.'+i4+t4+' '+i1+'.'+i2+'.'+i3+'.'+i4+'.'+i5+t5); txt.push(i1+t1+ ' ' +i1+ '.' +i2+t2+ ' ' +i3+t3+ ' ' +i4+t4+ ' ' +i5+t5); }) } else { console.log(i1+t1,i2+t2,i3+t3,i4+t4); //txt.push(i1+t1+' '+i1+'.'+i2+t2+' '+i1+'.'+i2+'.'+i3+t3+' '+i1+'.'+i2+'.'+i3+'.'+i4+t4); txt.push(i1+t1+ ' ' +i1+ '.' +i2+t2+ ' ' +i3+t3+ ' ' +i4+t4); } }) } else { //元素存入数组,结束 console.log(i1+t1,i2+t2,i3+t3); //txt.push(i1+t1+' '+i1+'.'+i2+t2+' '+i1+'.'+i2+'.'+i3+t3); txt.push(i1+t1+ ' ' +i1+ '.' +i2+t2+ ' ' +i3+t3); } }) }) }) // 创建一个Blob对象,包含要写入的文本 var blob = new Blob([txt.join( '\r\n' )], { type: 'text/plain' }); // 创建一个链接,指向这个Blob对象 var downloadUrl = URL.createObjectURL(blob); // 创建一个<a>元素,用于下载文件 var link = document.createElement( 'a' ); link.href = downloadUrl; // 设置下载的文件名 link.download = 'data.txt' ; // 触发点击事件,开始下载 document.body.appendChild(link); link.click(); // 清理 URL.revokeObjectURL(downloadUrl); document.body.removeChild(link); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术