鍍金池/ 問(wèn)答/數(shù)據(jù)分析&挖掘  HTML/ jQuery 如何在一段大HTML文本中使用 find 或其他命令獲取指定內(nèi)容?

jQuery 如何在一段大HTML文本中使用 find 或其他命令獲取指定內(nèi)容?

需求是這樣的,想給一個(gè)網(wǎng)站做一個(gè)增強(qiáng)插件,在他的列表頁(yè)顯示一部分只有詳情頁(yè)才有的數(shù)據(jù)。但這個(gè)網(wǎng)站是不提供任何API的,所以思路就是打開(kāi)列表頁(yè)的時(shí)候抓了所有條目的詳情url,之后用ajax抓一遍。

現(xiàn)在 url 已經(jīng)搞定了,用 ajax 抓下來(lái)的 html 頁(yè)面不知道怎么處理。在網(wǎng)站原頁(yè)面直接用$('.btn view') 就能得到想要獲取的數(shù)據(jù)了,但是自己抓下來(lái)的內(nèi)容卻不能直接用find。試過(guò)parseHTML也沒(méi)有效果,在網(wǎng)上找了類似的代碼發(fā)現(xiàn)也沒(méi)有正常工作。

附部分代碼:

function getDetail(detailUrl) {
        $.ajax({
            type: 'GET',
            url: 'detailUrl',
            dataType: 'html',
            async: true,
            success: function(msg) {
                checkDetail(msg);
            },
            error: function(msg) {
                console.log(msg);
            }
        });
    }
    

function checkDetail(msg) {
        var tempDom = $('<output>').append($.parseHTML(msg));
        var appContainer = $('#app-container', tempDom);
        console.log(tempDom);
        console.log(appContainer[0]);
        var status = tempDom.find('.btn view');
        console.log(status);
    }
回答
編輯回答
逗婦惱

用正則表達(dá)式啊!你用正則計(jì)算兩個(gè)指定字符之間的字符,你那肯定是要獲取標(biāo)簽里面的內(nèi)容吧!因?yàn)槟阕ハ聛?lái)的已經(jīng)不是html了,而是一個(gè)長(zhǎng)長(zhǎng)的字符串。我給你提供一個(gè)方法

var str = "1222223";
str = str.match(/1(\S*)3/)[1];
alert(str);//結(jié)果22222

就這么搞就ok了!我之前也搞過(guò)這種。

2017年2月5日 06:49
編輯回答
玩控
var html = '<div><span>asd</span></div>';
console.log($(html).find('span').text())
2017年5月22日 09:41