第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

相當(dāng)于 php DOMDocument 對(duì)象的 JavaScript

相當(dāng)于 php DOMDocument 對(duì)象的 JavaScript

夢(mèng)里花落0921 2023-12-19 21:25:55
我用 PHP 編寫了一段代碼,用于解析通過“wikipedia.org”的 API 請(qǐng)求收到的數(shù)據(jù)。 我使用 DOMDocument 類來解析數(shù)據(jù),它工作得很好?,F(xiàn)在我想用 JavaScript 來做同樣的工作。 API 請(qǐng)求返回(稍作清理后)如下所示的字符串:$htmlString = "<ul>    <li>Item 1</li>    <li>Item 2</li></ul><ul>    <li>Item 3</li>    <li>Item 4</li>    <li>Item 5</li></ul>"請(qǐng)注意,這只是一個(gè)示例。任何請(qǐng)求都可能有不同數(shù)量的列表,但它始終是一系列無序列表。 我需要獲取 <li> 標(biāo)記內(nèi)的文本,并且以下 PHP 代碼工作得很好。$DOM = new DOMDocument;$DOM->loadHTML($htmlString);$lis = $DOM->getElementsByTagName('li');$items =[];for ($i = 0; $i < $lis->length; $i++) $items[] = $lis[$i]->nodeValue;我根據(jù)需要在 $items 變量中獲取了數(shù)組 [Item 1,...,Item 5]。 現(xiàn)在我想用 JavaScript 來做同樣的工作。那就是我有一個(gè)字符串htmlString = "<ul>    <li>Item 1</li>    <li>Item 2</li></ul><ul>    <li>Item 3</li>    <li>Item 4</li>    <li>Item 5</li></ul>"在 JavaScript 中,我想獲取每個(gè) <li> 標(biāo)記內(nèi)的文本。我在網(wǎng)上搜索了與 JavaScript 中的 PHP DOMDocument 等效的類,但令人驚訝的是我什么也沒找到。 有什么想法如何在(最好是 Vanilla)JavaScript 中類似于 PHP 代碼來做到這一點(diǎn)? 如果沒有,知道如何在 JavaScript 中執(zhí)行此操作(甚至可能使用正則表達(dá)式)嗎?
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊

使用DOMParser()

您移植的代碼與您的 PHP 非常相似:

let parser = new DOMParser()

let doc = parser.parseFromString(`<ul>

? ? <li>Item 1</li>

? ? <li>Item 2</li>

</ul>

<ul>

? ? <li>Item 3</li>

? ? <li>Item 4</li>

? ? <li>Item 5</li>

</ul>`, "text/html")



let lis = doc.getElementsByTagName('li')

let items = []

for (let i = 0; i < lis.length; i++) items.push(lis[i].textContent)


console.log(items)


查看完整回答
反對(duì) 回復(fù) 2023-12-19
?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

如果您嚴(yán)格使用字符串,則需要使用正則表達(dá)式。

僅供參考 我正在使用 ES20xx 語法。如果您不支持此功能,則需要轉(zhuǎn)換為您的用戶可以訪問的語法。

這里我有一個(gè)表達(dá)式,它捕獲開始 <ul> 或 <li> 和結(jié)束標(biāo)記之間的任何內(nèi)容。然后我使用換行符將字符串拆分為數(shù)組。我們需要從結(jié)果數(shù)組中過濾掉空元素,最后在最終數(shù)組中返回所需的項(xiàng)目。

var htmlString = `<ul>

    <li>Item 1</li>

    <li>Item 2</li>

</ul>

<ul>

    <li>Item 3</li>

    <li>Item 4</li>

    <li>Item 5</li>

</ul>`;


var lis = htmlString.replace(/<ul>|<li>(.*)<\/li>|<\/ul>/g, '$1').split('\n');


var items = lis

    .filter(item => {

        if (item && item !== null && item !== '') {

            return item;

        }

    })

    .map(item => {

        var element = item.replace(/\s{2,}/g, '');


        return element;

    });


console.log('items array.', items);


查看完整回答
反對(duì) 回復(fù) 2023-12-19
  • 2 回答
  • 0 關(guān)注
  • 211 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)