Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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 如何将元素的字符串表示形式解析为实际的html元素?_Javascript_Html - Fatal编程技术网

Javascript 如何将元素的字符串表示形式解析为实际的html元素?

Javascript 如何将元素的字符串表示形式解析为实际的html元素?,javascript,html,Javascript,Html,例如,如果我有: “你好” 如何将其解析为实际的html元素 我尝试过以下方法: getNodeType(element) { const temp = document.createElement('div'); temp.innerHTML = element; if (temp.firstChild) return temp.firstChild.nodeName; else return null; } 它工作得很好,但我无法解析标记,例如、和,因为它们无法包含在div

例如,如果我有:

“你好

如何将其解析为实际的html元素

我尝试过以下方法:

getNodeType(element) {
  const temp = document.createElement('div');
  temp.innerHTML = element;
  if (temp.firstChild) return temp.firstChild.nodeName;
  else return null;
}
它工作得很好,但我无法解析标记,例如
,因为它们无法包含在div中。我也尝试过DOMParser,但它将所有内容都封装在html、head和body标记中,因此我无法识别实际的元素

我宁愿不使用jQuery,但也不完全反对它


非常感谢您的建议,非常感谢

为此,您应该使用DOMParser:

parser = new DOMParser();
doc = parser.parseFromString('<html><body><p>hello</p></body></html>', 'text/html');
console.log(doc.getElementsByTagName('p')[0])
// will print: <p>hello</p>
parser=newdomparser();
doc=parser.parseFromString(“hello

”,“text/html”); console.log(doc.getElementsByTagName('p')[0]) //将打印:hello


此处的更多信息:

为此,您应该使用DOMParser:

parser = new DOMParser();
doc = parser.parseFromString('<html><body><p>hello</p></body></html>', 'text/html');
console.log(doc.getElementsByTagName('p')[0])
// will print: <p>hello</p>
parser=newdomparser();
doc=parser.parseFromString(“hello

”,“text/html”); console.log(doc.getElementsByTagName('p')[0]) //将打印:hello


此处的更多信息:

不确定您为什么在
DOMParser
上遇到问题,它应该可以正常工作

constparser=newdomparser();
const doc=parser.parseFromString(“hello

”,“text/html”)
console.log(doc.firstChild.nodeName)不确定您为什么在
DOMParser
中遇到问题,它应该可以正常工作

constparser=newdomparser();
const doc=parser.parseFromString(“hello

”,“text/html”)
console.log(doc.firstChild.nodeName)你的意思是:我如何将其解析为实际的html元素?尝试使用
jQuery.parseHTML(数据,[,上下文][,keepScripts])
你的意思是:我如何将其解析为实际的html元素?尝试使用
jQuery.parseHTML(数据,[,上下文][,keepScripts])
DOMParser的问题实际上是它在我要定位的元素周围添加了HTML和head或body标记,所以firstChild总是返回HTML。关于如何解决这个问题有什么想法吗?DOMParser的问题实际上是它在我要定位的元素周围添加了HTML和head或body标记,所以firstChild总是返回HTML。关于如何解决这个问题有什么想法吗?与我上面的评论相同-有什么想法吗?嗯,你是说这个解决方案没有在你的案例中向控制台打印“hello

”?或者您需要通过一些属性来区分内部标记?我想您应该看看这三个方法:getElementById()、getElementsByCassName()、getElementsByTagName()。如果您有任何问题,请告诉我。与我的上述评论相同的问题-有什么想法吗?嗯,您是说此解决方案没有在您的案例中向控制台打印“hello

”?或者您需要通过一些属性来区分内部标记?我想您应该看看这三个方法:getElementById()、getElementsByCassName()、getElementsByTagName()。如果你有任何问题,请告诉我。