[英]How to remove elements from jquery object
我有一个特定的问题。 我想获取一些元素,遍历它,然后删除或编辑不需要的元素,然后再通过JSON发布该元素数据。
我的功能看起来像这样。
$("#submit_btn").off("click").on("click", function(e) {
e.preventDefault();
pdfhtml = $("#Calculation").html();
var inputs = $("input[type=number]", pdfhtml);
$.each(inputs, function(k, v) {
$(this).remove();
//$(this, pdfhtml).remove(); //also not working
})
var data = {};
data["data"] = pdfhtml;
alert(pdfhtml);
getdataJSON("","POST", "html", data, true);
});
我的问题是什么也没发生,提交数据后元素仍然存在。 我究竟做错了什么? 我需要此文件以便使用mpdf6(PHP)生成pdf。
您正在创建一个临时jQuery对象,并正在删除输入表单,但原始字符串pdfhtml
未被修改
$("#submit_btn").off("click").on("click", function (e) {
e.preventDefault();
//create a temp dom structure with the target html as its content
var $temp = $('<div />', {
html: $("#Calculation").html()
});
//modify the temp dom structure
$temp.find("input[type=number]").remove();
var data = {};
//get the update html content from the temp object
data["data"] = $temp.html();
alert(pdfhtml);
getdataJSON("", "POST", "html", data, true);
});
jQuery不会像这样进行字符串修改。 所有inputs
将是<input>
标记的内存表示形式,对这些<input>
pdfhtml
更改将不会保存回pdfhtml
字符串。
相反,您应该克隆#Calculation
div,然后执行以下操作:
$("#submit_btn").off("click").on("click", function(e) {
e.preventDefault();
var pdfhtml = $("#Calculation").clone(); // Clone this
var inputs = pdfhtml.find("input[type=number]");
$.each(inputs, function(k, v) {
$(this).remove();
});
var data = {};
data["data"] = pdfhtml.html(); // Read the HTML here...
alert(pdfhtml);
getdataJSON("","POST", "html", data, true);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.