繁体   English   中英

如何从jQuery对象中删除元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM