2 回答
TA贡献1852条经验 获得超1个赞
使用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)
TA贡献1874条经验 获得超12个赞
如果您严格使用字符串,则需要使用正则表达式。
仅供参考 我正在使用 ES20xx 语法。如果您不支持此功能,则需要转换为您的用户可以访问的语法。
这里我有一个表达式,它捕获开始 <ul>
或 <li>
和结束标记之间的任何内容。然后我使用换行符将字符串拆分为数组。我们需要从结果数组中过滤掉空元素,最后在最终数组中返回所需的项目。
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);
- 2 回答
- 0 关注
- 133 浏览
添加回答
举报