从存储在变量中的DIV中删除具有特定ID的DIv

时间:2015-02-09 06:13:16

标签: javascript jquery html css

当管理员更改订单状态时,会将#shipping_addr_detail_div的标记发送到服务器,以通过电子邮件发送给客户。

#dont_show_in_email内有一个DIV #shipping_addr_detail_div

我在服务器端发送#shipping_addr_detail_div的标记,但我不想在其中#dont_show_in_email

这是我尝试这样做之一

    var shipping_addr_detail_div = $("#shipping_addr_detail_div").html();

    shipping_addr_detail_div.find("#dont_show_in_email").remove();

这给了我错误TypeError: order_items_detail.find is not a function

我知道我可以使用$("#shipping_addr_detail_div #dont_show_in_email").remove()将其删除,但也会在浏览器的HTML页面中将其删除。

确切地说:

#dont_show_in_email变量中存储的标记中删除shipping_addr_detail_div,但不要从浏览器中显示的页面中删除#dont_show_in_email

2 个答案:

答案 0 :(得分:1)

获取没有子元素的元素的html:

$("#shipping_addr_detail_div").clone()
        .find('#dont_show_in_email')
        .remove()
        .end().html()

Working Demo

以下是它的工作原理:

- 克隆元素

- 找出并删除不需要的元素

- 使用.end()结束当前链中最近的过滤操作 并将匹配元素集返回到先前的状态。即你的#shipping_addr_detail_div

-get元素的html

答案 1 :(得分:0)

在这个例子中,你需要改变一件重要的事情。

你的例子:$("#shipping_addr_detail_div").clone().find("#dont_show_in_email").remove();

正确的例子: var searchVar = $("#shipping_addr_detail_div")。clone(); searchVar.find("#dont_show_in_email&#34)除去();

在第一个例子中,问题在于删除。您将在结果中看到" dont_show_in_email"。 在第二个示例中,结果是id为shipping_addr_detail_div的元素,没有元素" dont_show_in_email"。

或者您可以使用"的代码Satpal"