Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试在不修改DOM的情况下从选择器中删除html元素_Javascript_Html_Jquery_Jquery Selectors - Fatal编程技术网

Javascript 尝试在不修改DOM的情况下从选择器中删除html元素

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,

我正在尝试保存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, .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();

天哪,路易丝!你当然是完全正确的,我会尽快标记它。谢谢。非常好的一行,感谢您不断的改进、描述和速度。请参阅前面的问题: