给定data-id属性,更新jQuery中的TD值

时间:2018-09-02 07:15:51

标签: jquery

给定下一个td单元的data-id属性,尝试将值更新到TD单元时遇到麻烦。 有可能在jQuery中吗? 我的目的是:在表中,每一行的最后一个单元格都有一些动作,最后一个单元格具有data-id属性;在这些动作中,可以使用模式上传表单添加图片;提交图像后,我想更新该TR行的图像计数器,以增加TD相关单元格。 非常感谢您的帮助

这是将新行追加到表中的代码。

function mobile_register($mobile)
{
    $res = $GLOBALS['db']->getOne("SELECT COUNT(*) FROM " . $GLOBALS['db']->table('users') .
                                  " WHERE mobile_phone = '$mobile'");
    return $res;
}

动作单元包括一些图标,以显示模式形式并为每排飞机上载图像或文件。 提交表格以上传图像后,如果成功,我需要更新上面附加的TD单元中的计数值。 这是您提交表单以上传文件的代码(到目前为止,它可以正常工作)

$.ajax({
            url: url + "/photos/ajax_search",   
            data: post_data,
            type: "POST",
            dataType : "json",
            beforeSend: function(){
                $('#ajax-container').hide();
            },
            success: function (data) {

                if(data.status)
                {

                    var len = data.rows.length;
                    for(var i=0; i<len; i++){
                        var id = data.rows[i].id;
                        var manufacturer = data.rows[i].manufacturer;
                        var model = data.rows[i].model;
                        var cn = data.rows[i].cn;
                        var built = data.rows[i].built;
                        var count = data.rows[i].count;
                        var action = data.rows[i].action;

                        var tr_str = "<tr>" +
                            "<td>" + manufacturer + "</td>" +
                            "<td>" + model + "</td>" +
                            "<td>" + cn + "</td>" +
                            "<td>" + built + "</td>" +
                            "<td>" + count + "</td>" +
                            "<td data-id='" + id + "'>" + action + "</td>" +
                            "</tr>";

                        $("#table tbody").append(tr_str); 
                    }
                    $('#ajax-container').show();
                }
                else
                {
                    console.log('Registration not in DB');
                }
            },
            complete:function(data){

                $(this).parent().removeClass("spinner");
            }
        })

我尝试了以下代码,但是它返回了选中的整行的文本...我只需要第4个单元格中的计数值

$('#upload-form').submit(function(e){
    e.preventDefault();
    var id = $("#register-id").val();
    console.log("Submitted id is " + id);

    // Create an FormData object 
    var formData = new FormData(this);
    var form_action  = $("#modal-form").find("form").attr("action");
    // Add token hash in FormData
    formData.append("csrf_test_name", token_hash); 

    $.ajax({
        url: form_action,
        type:"post",

        data: formData,
        processData:false,
        contentType:false,
        dataType: "json",

        beforeSend: function(){
            $('.uploadBtn').prop("disabled", true);
            $('#upload-form').css("opacity",".5");

        },
        success: function(data){

            $('.uploadBtn').prop("disabled", false);
            $('#upload-form').css("opacity","1");

        }

    })

1 个答案:

答案 0 :(得分:1)

我不太确定我了解你。您说您是根据JSON文件中的记录ID为TR的ID的,但您又想增加它的ID?我假设您想从JSON集添加新行,还是其他?

关于脚本:此处要做的是找到匹配的单元格,然后使用parent()移至该行,从而将整行作为文本获得:

$('#table').find("td[data-id='" + id + "']").parent().text();

我建议您在第4个单元格上放置一个id,例如“ data-count-id” + id,这样您就可以直接解决该问题:

$('#table').find("td[data-count-id='" + id + "']").text();

如果这不是一种选择,那么您可以像下面这样令人费解:

= $((($('#table').find("td[data-id='" + id + 
"']").parent().children()).toArray())[4]).text();

这是您请求父行(TR),获取所有子行(TD),变成数组并请求4t单元格作为文本的原因。如果您打算将其用作数字,则可能还需要执行parseInt。

---编辑---

只需保持开始时使用的语法,但是除了添加自定义属性外,它还可以使用通常的标识符“ id”并将其命名为

<td id='data-count-" + id + "'> 

可以这样称呼它:

$("#data-count-" + id).text();