我正在开发一个使用Chrome DevTools进行实时编辑的小工具,我有一个小按钮"Save“,它捕获HTML并将其发送到服务器,以便使用Ajax更新静态文件(.html)。确实很简单。
我的问题是,在将HTML代码发送到服务器之前,我需要过滤它,我需要删除一些节点,并尝试使用jQuery来实现这一点,如下所示:
// 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代码上使用。
知道怎么做吗?
发布于 2014-02-21 08:32:18
DOM不是HTML的字符串。使用jQuery,您可以进行DOM操作,而不是字符串操作。
你在做的是
div
中。div
的内容转换为HTML$(html)
(因此我们回到上面的第一点)html
变量提交给服务器。不幸的是,html
字符串没有改变,因为您操纵了DOM节点,而不是字符串。
希望您能在上面看到,您正在进行各种转换,这些转换与您最终想要的几乎没有任何关系。
我不知道你是否需要这样做,但你只需要做一个.clone()
,然后是.find().remove()
,然后是.html()
var result = $("html").clone(false);
result.find("#some-node").remove();
var html = result.html();
发布于 2014-02-21 08:35:25
也许像这样?
var html = $('html').clone();
html.find('#some-node').remove();
https://stackoverflow.com/questions/21939626
复制