js实现截取a标签的href属性和内容

    showCatalog = () => {//食堂百科-docx页面添加目录
        let docxStr = document.getElementById("docx").innerHTML,
            reg = /<a href="(.+?)">(.+?)<\/a>/gi,
            regCont = /<a[^>]*href=['"]([^"]*)['"][^>]*>(.*?)<\/a>/gi,
            nodeArr = docxStr.match(reg),//a标签的数组
            hrefArr = [],//截取出来的href属性
            codeArr = [],//截取的a标签内容
            catalogAryList = [],//目录总数据
            hrefReg = /(<a\b[^>]+\bhref=")(\S*)("[^>]*>)(.*?)(<\/a>)/;
        if (nodeArr !== null && nodeArr !== [] && nodeArr !== undefined) {
            for (let key in nodeArr) {
                let str = nodeArr[key];
                if (str.indexOf("#") >= 0) {
                    hrefArr.push((hrefReg.exec(str))[2])
                    codeArr.push((hrefReg.exec(str))[4])
                }
            }
            hrefArr.map((item, index) => {
                catalogAryList.push({
                    id: index,
                    href: item,//链接
                    msg: codeArr[index]//内容
                })
            })
            catalogObj.catalogAry = catalogAryList;
        } else {
           // console.log('empty')
        }

    }

 

posted @ 2020-11-11 08:32  dongxiaolei  阅读(2273)  评论(0编辑  收藏  举报