首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >克隆HTML并使用jQuery删除某些节点

克隆HTML并使用jQuery删除某些节点
EN

Stack Overflow用户
提问于 2014-02-21 16:19:55
回答 2查看 504关注 0票数 3

我正在开发一个使用Chrome DevTools进行实时编辑的小工具,我有一个小按钮"Save“,它捕获HTML并将其发送到服务器,以便使用Ajax更新静态文件(.html)。确实很简单。

我的问题是,在将HTML代码发送到服务器之前,我需要过滤它,我需要删除一些节点,并尝试使用jQuery来实现这一点,如下所示:

代码语言:javascript
运行
复制
// I grab all the HTML code
var html = $('<div>').append($('html').clone()).html();
// Now I need to remove some nodes using jQuery
$(html).find('#some-node').remove();
// Send the filtered HTML to server
$.post('url/to/server/blahblahblah');

我已经尝试过这个Using jQuery to search a string of HTML,但没有成功。我无法实现在克隆的jQuery代码上使用。

知道怎么做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-21 16:32:18

DOM不是HTML的字符串。使用jQuery,您可以进行DOM操作,而不是字符串操作。

你在做的是

  • 克隆文档(没有必要,因为无论如何都要将其转换为HTML ),
  • 由于某种原因将该克隆文档附加到新的div中。
  • 将该div的内容转换为HTML
  • 将该HTML转换回DOM节点$(html) (因此我们回到上面的第一点)
  • 在这些节点中查找和移除元素
  • 大概是将html变量提交给服务器。

不幸的是,html字符串没有改变,因为您操纵了DOM节点,而不是字符串。

希望您能在上面看到,您正在进行各种转换,这些转换与您最终想要的几乎没有任何关系。

我不知道你是否需要这样做,但你只需要做一个.clone(),然后是.find().remove(),然后是.html()

代码语言:javascript
运行
复制
var result = $("html").clone(false);

result.find("#some-node").remove();

var html = result.html();
票数 5
EN

Stack Overflow用户

发布于 2014-02-21 16:35:25

也许像这样?

代码语言:javascript
运行
复制
var html = $('html').clone();
html.find('#some-node').remove();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21939626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档