Javascript 尝试在不修改DOM的情况下从选择器中删除html元素
我正在尝试保存DIV id:Javascript 尝试在不修改DOM的情况下从选择器中删除html元素,javascript,html,jquery,jquery-selectors,Javascript,Html,Jquery,Jquery Selectors,我正在尝试保存DIV id:#canvas中包含的html。通过类删除所有元素:.show hide config和.ez control,然后再通过ajax将其发送到服务器。 这是我到目前为止所拥有的,但它还远没有发挥作用 $(".ez-save-page").click(function(){ var canvas_html = $("#canvas").html(); canvas_html = $(canvas_html).find(".show-hide-config,
#canvas
中包含的html。通过类删除所有元素:.show hide config
和.ez control
,然后再通过ajax将其发送到服务器。
这是我到目前为止所拥有的,但它还远没有发挥作用
$(".ez-save-page").click(function(){
var canvas_html = $("#canvas").html();
canvas_html = $(canvas_html).find(".show-hide-config, .ez-control").remove();
$.ajax({
dataType: "json",
url: "./save_page/",
data: {"save_html": JSON.stringify(canvas_html)},
success: function(save_result){
console.log(save_result);
}
});
});
html示例:
<div id="el-1387177861244" class="ui-draggable">
<button class="show-hide-config">×</button>
<div class="ez-control">
<span>Container</span>
<div class="config_options">
<div class="btn-group">
<button type="button" class="close">×</button>
</div>
</div>
<div class="clearfix"></div>
</div>
<div>
<p>Some content I want to keep including the wrapping div</p>
</div>
</div>
×
容器
×
我想保留一些内容,包括包装div
我想要发送的内容:
<div id="el-1387177861244" class="ui-draggable">
<div>
<p>Some content I want to keep including the wrapping div</p>
</div>
</div>
我想保留一些内容,包括包装div
实际的html要复杂得多,可以包含任意数量的元素,但如果我可以在不修改DOM的情况下从选择器中删除2个类,那将非常感谢。您可以克隆
#canvas
的内容,以您想要的方式操作它们并获取结果html。修订守则:
var canvas_html = $("#canvas")
.children() // grab .children
.clone() // and .clone
.find(".show-hide-config, .ez-control") // .find unwanted elements
.remove() // .remove them
.end() // undo the last .find operation
.html(); // grab .html contents
console.log($.trim(canvas_html));
// <div>
// <p>Some content I want to keep including the wrapping div</p>
// </div>
var canvas_html=$(“#canvas”)
.children()//抓取.children
.clone()//和.clone
.find(“.show hide config.ez control”)//。查找不需要的元素
.remove()/。删除它们
.end()//撤消最后一个.find操作
.html();//抓取.html内容
log($.trim(canvas_html));
//
//我想保留的一些内容包括包装div
//
试试这个
$("#canvas").find(".show-hide-config, .ez-control").remove();
而不是
canvas_html = $(canvas_html).find(".show-hide-config, .ez-control").remove();
天哪,路易丝!你当然是完全正确的,我会尽快标记它。谢谢。非常好的一行,感谢您不断的改进、描述和速度。请参阅前面的问题: