Javascript如何将纯文本html元素拆分为数组?
若我有一个包含html元素的字符串,那个么创建同级html元素数组的有效方法是什么Javascript如何将纯文本html元素拆分为数组?,javascript,html,plaintext,Javascript,Html,Plaintext,若我有一个包含html元素的字符串,那个么创建同级html元素数组的有效方法是什么 尝试将indexOf与开头标记的第一个字母一起使用“我相信这就是您要做的 <div id="container"> <div>child 1</div> <div>child 2</div> <div>child 3</div> </div> <script type="
尝试将indexOf与开头标记的第一个字母一起使用“我相信这就是您要做的
<div id="container">
<div>child 1</div>
<div>child 2</div>
<div>child 3</div>
</div>
<script type="text/javascript">
let elements = [], container = document.getElementById("container");
for(let i = 0; i < container.children.length; i++){
elements.push(container.children[i].outerHTML);
}
console.log(elements);
</script>
儿童1
儿童2
儿童3
让元素=[],容器=document.getElementById(“容器”);
for(设i=0;i
使用正则表达式和js拆分方法,我们可以提取
检查我的代码
let a = `<p>Hello there</p><p>How r you?</p>
<h1>Thank you</h1>`
let b = a.split(/<[a-zA-Z0-9]*>([^<.*>;]*)<\/[a-zA-Z0-9]*>/gmi).filter(x=>x.trim() !== '')
console.log(b) //['Hello there', 'How r you?', 'Thank you']
a=`你好你好吗
多谢各位`
设b=a.split(/([^;]*)/gmi.filter(x=>x.trim()!='')
console.log(b)/[“你好”,“你好吗?”,“谢谢”]
您可以使用正则表达式来解决此问题
使用正则表达式查找所有开始和结束标记,并替换为“/”(其他内容),然后拆分它,然后使用过滤器(布尔值)过滤(“”)
代码:
var elements=[],container=document.getElementById(“container”);
对于(设i=0;i|$)/g,”);
}
log(“plainTextArray=”,elements);
让bodyHtml=document.getElementsByTagName('div')[“0”].innerHTML;
让plainTextArray=bodyHtml.replace(/]+(>|$)/g,“/”).split(“/”).filter(布尔值)
log('plainTextArray=',plainTextArray);
你好谢谢
您可以这样使用以从子元素获取所有文本
let nodeList=document.getElementById('stack').querySelectorAll('*');
让列表=[];
节点列表forEach(函数(val){
list.push(val.outerHTML)
})
console.log(列表);
你好
非常感谢。
非常感谢,伙计!谢谢你,我的朋友,但是html元素是纯文本的,我认为它们不是dom元素,我仍然感谢你的努力啊,现在我明白你所说的“包含html元素的字符串”是什么意思了。“:)很高兴Arshpreet的回答似乎对你有用。非常感谢你,但是元素是纯文本的,不是dom元素,但无论如何还是要感谢你
let a = `<p>Hello there</p><p>How r you?</p>
<h1>Thank you</h1>`
let b = a.split(/<[a-zA-Z0-9]*>([^<.*>;]*)<\/[a-zA-Z0-9]*>/gmi).filter(x=>x.trim() !== '')
console.log(b) //['Hello there', 'How r you?', 'Thank you']