Javascript中如何将一串String当作HTML来处理?

RT。

假设有 var s ="xxxxx“, 这里面的”XXXX“是我复制粘贴的一段完整的HTML网页源码。
我想对这一串String进行一些比如document.getElementById, getElementByTag这样的操作,来从中提取出我想要的元素,请问应如何做?
谢谢

要解决你的问题,首先你得明白
document.getElementById以及
document.getElementsByTagName方法的定义
这两个方法都是document对象的方法,而document代表的是当前文档。
如果你要用上面两个方法来找你字符串里面的html节点对象,那么你就得把该字符串引用到页面,这是你首先要做的事情。但是你可能担心引用到到页面后会显示出来(不想让别人看的),那么你可以在页面创建一个标签(例如div、span),然后将这个标签使用css设置为不可见(display:none),之后就可以使用你上面提到的两个方法了。

祝你成功!追问

试了, 不行。

在页面上倒是能显示出这段HTML代码来, 但document.getXXX还是用不了。 查看源代码也看不到。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-14
在Html页中定义一个span 元素或是label 能加载html就可以 在JS中使用document.getElementById("定义的span的ID").innerHTML=s;
然后就可以使用了。
第2个回答  2012-08-14
如果Html严格遵守XML格式,则可以使用javascript的XML解析类,但是如果不严格遵守,则没有办法。
var txt="<html><head></head><body><p>撒旦法撒旦法</p></body></html>";
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);
}

var content=xmlDoc.getElementsByTagName("p")[0].nodeValue;追问

请问您所说的“严格遵守XML格式”是指必须等都齐全, 还是只要标签闭合比如123就行?

追答

标签必须关闭,必须要有一个根节点,属性名必须小写,属性值必须用引号引起来等

本回答被提问者和网友采纳