将HTML转换为JavaScript

8

有没有工具可以将HTML转换为JavaScript?

例如:

<div>
</div>

将会转换为

aDiv = document.createElement('div');
document.appendChild(aDiv);

我正在为UI组件制作一些HTML模板,并使用MooShell进行原型设计。如果能够自动生成构建组件HTML的JavaScript代码将会非常棒。

谢谢


1
有趣的问题。我认为jQuery必须有一个内置的解析引擎来处理这个问题,因为它可以接受像$("<div></div>")这样的命令来构建DOM对象。也许那里有额外的信息。 - Pekka
1
有趣的想法,但请注意,重复的DOM事务,特别是对于大型层次结构,可能会很昂贵。 - Konrad
如果文档无法验证怎么办?无论如何,可以通过暴力正则表达式轻松实现 :) - Enrico Carlesso
我刚刚看到了BeautifulSoup,这是一个解析HTML的Python工具,即使是格式不正确的HTML也可以解析。 - mplungjan
1
Pekka提出了一个很好的观点。你可以尝试深入研究jQuery源代码或者挖掘一些有关jQuery()函数如何工作的信息。@Konrad:我想,可以采用类似于jQuery推荐的方法--通过在单个事务中构建复杂的层次结构,而不是逐个创建每个单独的元素。 - Lèse majesté
5个回答

2

我建议您查看John Resig的纯JavaScript HTML解析器。它包含了一个SAX样式的HTML解析器,还包括XML序列化器、DOM构建器和DOM创建器。每个都接受HTML字符串作为输入。

特别地,HTMLtoDOM方法可以轻松地被重新用于返回构建任何HTML输入字符串的DOM所需的JavaScript字符串。


0

PrototypeJS 框架有一个 insert() 方法,它能够解析 HTML 代码,所以你可以做如下操作:

$$('body')[0].insert(stringWithYourHTMLCode);

或者你可以为你的内容定义一个容器:

$('containerId').insert(stringWithYourHTMLCode);

这不是他在问的。 - Chris

0

如果没有这样的工具(我非常认为是这种情况),我会用同样古老而有效的方式来解决这个问题:构建自己的解析器。


0
我看到其他人已经给了你很多关于如何做这个的建议,但是我想提醒一点。
如果你正在使用客户端Javascript向DOM中插入/删除/修改元素,你会注意到,使用jQuery等框架时,你将无法调用和操作动态添加的DOM元素。
解决这个问题的最好方法是查阅使用jQuery Live插件。

-2
我不确定你的情况,但如果你在HTML中有组件,它们应该有事件、ID和绑定...所以我不认为有一个类似人类天才的脚本可以生成这个代码。此外,你的问题非常具体。它可能存在于某些IT公司的某个地方,但它不像jQuery那样是Web开发人员每天都使用的东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接