Javascript ES6-将HTML字符串解析为数组
我有一个HTML格式的字符串:Javascript ES6-将HTML字符串解析为数组,javascript,ecmascript-6,Javascript,Ecmascript 6,我有一个HTML格式的字符串: let dataString='Lorem ipsumLorem ipsum 2; 如何解析此字符串以获得如下所示的标记数组 让数据数组=[ “Lorem ipsum”, '', “Lorem ipsum 2”, '', ]; 使用DOMParser将其转换为文档,然后获取主体的子对象和.map它们的.outerHTML: const str='Lorem ipsumLorem ipsum 2; const doc=new DOMParser().parseF
let dataString='Lorem ipsumLorem ipsum 2;
如何解析此字符串以获得如下所示的标记数组
让数据数组=[
“Lorem ipsum”,
'',
“Lorem ipsum 2”,
'',
];
使用DOMParser
将其转换为文档,然后获取主体的子对象和.map
它们的.outerHTML
:
const str='Lorem ipsumLorem ipsum 2;
const doc=new DOMParser().parseFromString(str,'text/html');
const arr=[…doc.body.children].map(child=>child.outerHTML);
控制台日志(arr)代码>建议使用Dom解析
这里使用的是香草JS,而不是另一个答案中使用的DOMParser
let dataString=`Lorem ipsumLorem ipsum 2`;
让domFragment=document.createElement(“div”);
domFragment.innerHTML=dataString;
const arr=[…domFragment.queryselectoral(“div>p,div>figure”)].map(el=>el.outerHTML)
console.log(arr)
我不清楚你的问题。这是随机字符串还是html字符串?分割规则是将原始字符串分割为html元素部分
如果是真的,我想我们可以用一个虚拟元素来处理它
为了方便起见,我使用jQuery选择器:
let stringToSplit=`Lorem ipsumLorem ipsum 2`
$dummy=$(“”);//创建一个虚拟对象
$dummy.html(stringToSplit);
var dataArray=[];
var dummyChildren=$dummy.children();
for(var i=0;i
请访问,看看有什么和。做一些研究,搜索相关话题等;如果你被卡住了,发布一篇你尝试的文章,记下输入和预期输出。你尝试过什么?最好展示您尝试过的内容,以便人们更好地了解您尝试执行的操作。您可以创建一个DOM元素,将innerHTML设置为此字符串,并获取元素的子节点。我尝试了.split(//g),但它只拆分标记。我想让这是非常具体的这个例子。如果
后面有空格,它将在outputence my语句中添加另一个元素:然后您的特定字符串我为您创建了一个片段。实际上您并没有回答OP的问题,因为您有一个innerHTML数组,而不是outerHTML数组。还有,当有jQuery供您使用时,为什么要使用for循环呢?OP实际上也没有要求jQuery也不需要将div实际附加到主体中。这可以在内存中完成。查看哪个返回请求的HTML字符串。另外,您不使用本身就是JS函数的slice
。谢谢您的提示。我更正了我的答案。我只是一个初学者,所以我的方法可能不是最短最聪明的:D