javascript - 使用 javascript 创建带有图像标签的数组
问题描述
我有 api 请求,它是字符串数据类型。它包含随机纯文本和 img 标签/标签,它们全部组合在一起。一个字符串可以有一个或多个 img 标签。我正在寻找从字符串的其余部分分割这些 img 标签并将其放入数组的最佳方法。
"Random text <img src='img-one-src' alt='alt-one' /> some other random text <img src='img-two-src' src='alt-two' />"
数组可以是:
var imgs = [{src: 'img-one-src', alt: 'alt-one'}, {src: 'img-two-src', alt: 'alt-two'}]
解决方案
创建一个元素并使您的字符串成为innerHTML
该元素的。然后querySelectorAll('img')
在该元素上使用,并使用 array spread 将结果拖到一个数组中[...res]
。如果您想要数组中的 HTML 字符串而不是元素,只需使用map()
:
const str ="Random text <img src='img-one-src' /> some other random text <img src='img-two-src' />";
const div = document.createElement('div');
div.innerHTML = str;
const images = [...div.querySelectorAll('img')];
const imageStrings = images.map(x=>x.outerHTML);
console.log(images, imageStrings);
推荐阅读
- django - Django 高级 LIKE 过滤
- python-3.x - 如何在 networkx 2.2 中使用社区模块“python-louvain”?
- c# - C# MVC & React - 在 MS EDGE 上反应未完全加载(Cors 错误 SEC7120)
- git - 如何列出包含精心挑选的提交的 git 标签
- javascript - 从父组件修改子状态
- ios - 如何使用两条边设置 UIScreenEdgePanGestureRecognizer
- html - HTML SVG 作为背景,带有未缩放的右对齐内容
- gitlab - 根据条件运行 gitlab 管道
- python - 使用索引数组替换列表中的指定元素(python) - 错误消息
- node.js - 快速计算MongoDB中大量文档的统计量