如何从jquery对象中删除元素

时间:2015-04-30 08:04:18

标签: javascript php jquery

我有一个具体的问题。我想抓住一些元素,遍历它,删除或编辑不需要的元素,然后通过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。

2 个答案:

答案 0 :(得分:3)

您正在创建一个临时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);
});

答案 1 :(得分:2)

jQuery不会像那样进行字符串修改。所有inputs都是<input>标记的内存中表示,对这些标记的更改不会保存回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); 
});