代码之家  ›  专栏  ›  技术社区  ›  Umair Ayub

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

  •  0
  • Umair Ayub  · 技术社区  · 9 年前

    当管理员更改订单状态时 #shipping_addr_detail_div 发送到服务器并通过电子邮件发送给客户。

    有一个DIV #dont_show_in_email 在…内 #发货_addr_detail_div .

    我正在发送的标记 #发货_addr_detail_div 在服务器端,但我不想 #不显示邮件 在这里面。

    这是我的一个尝试

        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页面中删除。

    准确地说:

    去除 #不显示邮件 从存储在 shipping_addr_detail_div 变量,但不删除 #不显示邮件 从浏览器中显示的页面

    2 回复  |  直到 9 年前
        1
  •  1
  •   Milind Anantwar    9 年前

    要获取不含子元素的元素的html:

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

    Working Demo

    以下是它的工作原理:

    -克隆元素

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

    -使用 .end() 结束当前链中最近的筛选操作 并将匹配元素集合返回到其先前状态。即 #shipping_addr_detail_div 在你的情况下

    -获取元素的html

        2
  •  0
  •   Anatoli    9 年前

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

    你的前任: $("#shipping_addr_detail_div").clone().find("#dont_show_in_email").remove();

    正确的示例: var searchVar=$(“#shipping_addr_detail_div”).clone(); searchVar.find(“#dont_show_in_email”).remove();

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

    或者你可以使用“Satpal”的代码。