是否有一个javascript函数将字符串作为输入并解析该字符串,如果它是HTML并返回相应的元素?
示例:F("<div id='outer'><div id='inner'><span hello></span></div></div>")
将返回一个div HTMLElement,它有一个子div,而div又有一个span子。
答案 0 :(得分:5)
没有这样的功能。但是你可以使用jQuery $("<div id='outer'><div id='inner'><span hello></span></div></div>")
来做你想做的事。
答案 1 :(得分:2)
这是一个非常简单的简单JavaScript解决方案:
function returnTheNodes(htmlStr)
{
var myCont = document.createElement('DIV'); // create a div element
myCont.innerHTML = htmlStr; // create its children with the string
return myCont.childNodes; // return the children elements created :)
}
var newElems = returnTheNodes("<div id='outer'><div id='inner'><span hello></span></div></div>");
for(var i = 0; i < newElems.length ; i++ )
{
alert(newElems[i].id); // newElems[0] has the first DIV
}
答案 2 :(得分:1)
那么DOMParser
呢?
这是一个例子:
var str = '<div id="outer"><div id="inner"><span> hello</span></div></div>';
function parseStringToDOMElement (str)
{
var xmlDoc = null;
if (window.DOMParser)
{
var parser = new DOMParser ();
xmlDoc = parser.parseFromString (str, "text/xml");
}
else if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject ("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML (str);
}
return xmlDoc.firstChild;
}
var node=parseStringToDOMElement(str);
console.log(node);
我希望它会有所帮助