当管理员更改订单状态时,会将#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
答案 0 :(得分:1)
获取没有子元素的元素的html:
$("#shipping_addr_detail_div").clone()
.find('#dont_show_in_email')
.remove()
.end().html()
以下是它的工作原理:
- 克隆元素
- 找出并删除不需要的元素
- 使用.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"