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()。如果你有任何问题,请告诉我。