簡體   English   中英

如何從表中獲取選定的行值

[英]How to get selected row values from a table

我正在將HTML表轉換為數組,並將其傳遞給用於插入多行的控制器。 我可以創建數組,但是問題是它正在創建一個完整的表數組,但是我只想獲取選定的行td值。

//function to convert HTML table to  array//
var HTMLtbl = {
    getData: function (table) {
        var data = [];
        table.find('tr').not(':first').each(function(rowIndex, r) {
            var cols = [];

            // I believe the main problem is here:
            $(this).find('td').each(function(colIndex, c) {
                cols.push($(this).text().trim());
            });
            data.push(cols);
        });
        return data;
    }
}

$(document).on('click', '#btnsave', function() {
    var data = HTMLtbl.getData($('#tblresult'));
    var parameters = {};
    parameters.array = data;

    var request =  $.ajax({
        async: true,
        cache: false,
        dataType: "json",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "../Home/Save_SearchCarsDocs",        
        data: JSON.stringify(parameters)
    });
    request.done(function(msg) {
        alert("Row saved " + msg.d);
    });

您可以嘗試關注...

    //function to convert HTML table to  array//
   var excludedTD_Index = [0,5,7]; // define what you want to exclude by index
    var HTMLtbl = {
        getData: function (table) {
            var data = [];
            table.find('tr').not(':first').each(function(rowIndex, r) {
                var cols = [];

                // I believe the main problem is here:
                $(this).find('td').each(function(colIndex, c) {
                    if(excludedTD_Index.indexOf(colIndex) >=0) // exclude TD
                    continue;
                    cols.push($(this).text().trim());
                });
                data.push(cols);
            });
            return data;
        }
    }

    $(document).on('click', '#btnsave', function() {
        var data = HTMLtbl.getData($('#tblresult'));
        var parameters = {};
        parameters.array = data;

        var request =  $.ajax({
            async: true,
            cache: false,
            dataType: "json",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "../Home/Save_SearchCarsDocs",        
            data: JSON.stringify(parameters)
        });
        request.done(function(msg) {
            alert("Row saved " + msg.d);
        });

或者,如果您可以將以下數據添加到TD標簽,則可以使其更易於管理

<td data-exclude="1"> 
...

添加以上數據后,您可以按以下方式排除這些列

 var HTMLtbl = {
        getData: function (table) {
            var data = [];
            table.find('tr').not(':first').each(function(rowIndex, r) {
                var cols = [];

                // I believe the main problem is here:
                $(this).find('td').each(function(colIndex, c) {
                    if($(this).data("exclude") == 1) // exclude TD
                    continue;
                    cols.push($(this).text().trim());
                });
                data.push(cols);
            });
            return data;
        }
    }

謝謝羅里·麥克羅桑(Rory McCrossan)終於得到了我的答案,我在下面添加了我的解決方案

     var CB=1;
var HTMLtbl =
    {
        getData: function (table) {
            var data = [];

            table.find('tr').not(':first').each(function (rowIndex, r) {
                if ($("#chk_" + CB).is(':checked'))
                    {
                    var cols = [];
                    $(this).find('td').each(function (colIndex, c) {                      
                        cols.push($(this).text().trim());     

                    });
                    data.push(cols);
                }
                CB++;
            });
            CB = 1;
            return data;

        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM