Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从文本中获取DOM主体_Javascript_Html_Getelementsbytagname - Fatal编程技术网

使用javascript从文本中获取DOM主体

使用javascript从文本中获取DOM主体,javascript,html,getelementsbytagname,Javascript,Html,Getelementsbytagname,我在使用getElementsByTagName从javascript代码中提取主体时遇到问题 var enc1='test'; var wrapper=document.createElement('div'); wrapper.innerHTML=enc1; var converted=wrapper.getElementsByTagName(“主体”); var res=“正文:”+已转换; document.getElementById(“demo”).innerHTML=res 就像

我在使用getElementsByTagName从javascript代码中提取主体时遇到问题

var enc1='test';
var wrapper=document.createElement('div');
wrapper.innerHTML=enc1;
var converted=wrapper.getElementsByTagName(“主体”);
var res=“正文:”+已转换;
document.getElementById(“demo”).innerHTML=res

就像罗布在他的评论中说的那样,你不能在一个div中有一个head或body标签

大多数(如果不是全部的话)浏览器只会向包装器div写入“test”

您已使用代码创建了以下内容:

<div>test</div>
包装器div中没有body标记,因此转换后的是空的HTMLCollection[]。

比每天的
有点特殊。只能将它们作为
的直接后代放置

使用
createElement
创建一个像这样的
html
标记目前是不可能的,您需要创建一个新的
文档
,然后使用它访问它的
.body
属性-
.body.innerHTML
,以获取html

目前解析整个HTML文档的唯一方法是
document.implementation.createHTMLDocument
DOMParser
DOMParser
更新鲜,所以我建议使用它

const enc1='test';
const newDocument=(new DOMParser).parseFromString(enc1,'text/html');
const converted=newDocument.body.innerHTML;
const res=“正文:”+已转换;
document.getElementById(“demo”).innerHTML=res
标记不应位于div中。您可以这样做来提取正文中的文本:


const bodyText=document.body.innerHTML

在div中,或元素都无效。它们必须是元素的子元素。
var wrapper=document.createElement('html');/*…*/document.getElementById(“demo”).innerHTML=已转换[0]。innerHTMLwrapper.textContent
…否则会导致未定义的行为。这没有什么不确定的。HTML5对于如何处理解析错误非常具体。
var converted = wrapper.getElementsByTagName("body");