使用jQuery编辑外部HTML文档

问题描述:

我需要使用jQuery编辑HTML文档,但我尝试过的所有解决方案都非常严格。使用jQuery编辑外部HTML文档

我从服务器获取文档,所以我把它作为一个字符串。为了解析文档,我需要将它添加到DOM中。

当我把它添加到身体,我失去了<html><head><body>标签,这是由浏览器(见https://*.com/a/3218941/654179)剥离。

所以我尝试使用一个iframe,这有点复杂:我必须使用contentWindow.document手动填充它,然后与contents().find('*').html()获取内容的技巧。也许有一个更简单,更干净的方式来做到这一点。但iframe解决方案还会剥离<html>,<head><body>标签。看我的例子:http://jsfiddle.net/gNvYn/7/

这里还有另一个窍门:https://*.com/a/6751201/654179但我不能用它来写入然后阅读文档(我需要阅读它以保存在服务器上)。

那么,有没有办法编辑(写入,然后读取)一个HTML文档而不会丢失结构?

+0

你真的要把它附加到DOM吗?你尝试使用$(varContainingHtmlAsString)吗? – bfavaretto 2012-03-15 18:32:42

+0

获取文档实际上可能不是编写它的问题。你想怎么做?你有一个服务器端服务接受文本和文件名(例如)并将内容写入该文件? – 2012-03-15 18:34:44

+0

通过jQuery编辑html文档是有限的,可能不是最好的解决方案。尝试php – 2012-03-15 18:36:33

如果你需要改变的东西完全在体内,那么就有一个解决方法。使用javascript的indexOf()和slice()方法将字符串拆分为前体(其中<body>作为其最后的字符),后体(其具有</body>作为其第一个字符)和body(中间的所有内容)。然后将主体插入到DOM中,对其进行操作,再次将其拉出,然后使用javascript +运算符将三者重新粘合在一起,然后发送回去。这是一个小东西,它不是正好你要求什么,但它应该让你到你要去的地方。