2012-08-15 71 views
0

所有解析JavaScript中的HTML?

我有一个HTML输入:<h5><font face="times new roman, times, serif" size="7" style="color: #ff9696; ">Sample</font></h5> <ul> </ul>

我想提取的一切,并传递给JavaScript的变量。例如, 字体名称,大小,样式颜色。我可以使用RegEx吗?

我都试过,但没有用:

<html> 

    <script> 
     var input = '<h5><font face="times new roman, times, serif" size="7" style="color: #ff9696; ">Krishanthan</font></h5> <ul> </ul>'; 
     var div = document.createElement('div'); 

     div.innerHTML = input; 

     var size = div.getElementsByTagName('size')[0]; 
     var text = size.innerText || size.textContent; 

     alert(text); 
    </script> 

</html> 

请给我一些建议...

感谢。

+0

使用其中一个已有的[Javascript HTML分析器](https://www.google.com/search?q=javascript+html+parser)。 – 2012-08-15 22:47:47

+0

如果您必须解析任意HTML,则不能使用正则表达式。如果您正在使用HTML构造的一小部分,那么也许,但这取决于您正在维护的HTML的哪些功能。如果你需要更多的帮助,你需要给我们更多关于你想要完成的细节。 – 2012-08-15 22:48:02

+3

看来你必须更多地了解DOM。 'size'是'font'元素的**属性**,它不是标签。获取对'font'元素的引用并使用'getAttribute'来访问属性。 – 2012-08-15 22:52:45

回答

3

你有正确的想法,但你是治疗size喜欢的元素,而实际上它是font元素的属性

var input = '<h5><font face="times new roman, times, serif" size="7" style="color: #ff9696; ">Krishanthan</font></h5> <ul> </ul>'; 
var div = document.createElement('div'); 

div.innerHTML = input; 

var fontEl = div.getElementsByTagName('font')[0]; 
var size = fontEl.getAttribute('size'); 

alert(size); 
+0

非常感谢你,是的工作........... !!!!!看起来好像我在DOM中很差:(你能建议从基础学习HTML DOM的书...再次感谢 – Gobi 2012-08-15 23:45:47