初始化在javascript中有标记的数据表


Initializing DataTables that has the markup inside javascript

我遇到了一个问题。我解析一个.CSV文件,我需要将它们显示为datattables格式。

问题是标记都在javascript内,如下所示

    $("#upload").bind("click", function () {
        var regex = /^([a-zA-Z0-9's_''.'-:])+(.csv|.xlsx|.xls)$/;
        if (regex.test($("#fileUpload").val().toLowerCase())) {
            if (typeof (FileReader) != "undefined") {
                var reader = new FileReader();
                reader.onload = function (e) {
                    var table = $("<table id='comp-monitor' class='table table-condensed table-striped'> 'n'
            <tr><th>No.</th><th>DESKRIPSI ASSEMBLY</th><th>Drawing No.</th><th>QTY3</th><th>WEIGHT</th><th>-</th></tr>");
                    var rows = e.target.result.split("'n");
                    var no = 0;
                    for (var i = 0; i < rows.length; i++) {
                        no++;
//                        console.log(i);
                        var row = $("<tr />");
                        var cells = rows[i].split(",");
                        // Column No
                        var cell_no = $("<td />");
                        cell_no.html(no);
                        row.append(cell_no);
                        for (var j = 0; j < cells.length; j++) {
                            var cell = $("<td />");
                            cell.html(cells[j]);
                            row.append(cell);
                        }
                        table.append(row);
                    }
                    $("#dvCSV").html('');
                    $("#dvCSV").append(table);
                }
                reader.readAsText($("#fileUpload")[0].files[0]);
            } else {
                alert("This browser does not support HTML5.");
            }
        } else {
            alert("Please upload a valid CSV file.");
        }
    });

而jquery的初始化就在函数

之外
$('#comp-monitor').DataTable();

不知何故,数据表不运行,我需要一些帮助,这在哪里放置初始化。

Thanks a bunch

你可以在javascript内部初始化数据表

$("#upload").bind("click", function () {
    var regex = /^([a-zA-Z0-9's_''.'-:])+(.csv|.xlsx|.xls)$/;
    if (regex.test($("#fileUpload").val().toLowerCase())) {
        if (typeof (FileReader) != "undefined") {
            var reader = new FileReader();
            reader.onload = function (e) {
                var table = $("<table id='comp-monitor' class='table table-condensed table-striped'> 'n'
            <tr><th>No.</th><th>DESKRIPSI ASSEMBLY</th><th>Drawing No.</th>    <th>QTY3</th><th>WEIGHT</th><th>-</th></tr>");
                var rows = e.target.result.split("'n");
                var no = 0;
                for (var i = 0; i < rows.length; i++) {
                    no++;
//                        console.log(i);
                    var row = $("<tr />");
                    var cells = rows[i].split(",");
                    // Column No
                    var cell_no = $("<td />");
                    cell_no.html(no);
                    row.append(cell_no);
                    for (var j = 0; j < cells.length; j++) {
                        var cell = $("<td />");
                        cell.html(cells[j]);
                        row.append(cell);
                    }
                    table.append(row);
                }
                $("#dvCSV").html('');
                $("#dvCSV").append(table);
//HERE
               $('#comp-monitor').DataTable();
            }
            reader.readAsText($("#fileUpload")[0].files[0]);
        } else {
            alert("This browser does not support HTML5.");
        }
    } else {
        alert("Please upload a valid CSV file.");
    }
});

让我知道这是否可行

我用addrow找到了答案

var t = $('#comp-monitor').DataTable({
    });
    $("#upload").bind("click", function () {
        var regex = /^([a-zA-Z0-9's_''.'-:])+(.csv|.xlsx|.xls)$/;
        if (regex.test($("#fileUpload").val().toLowerCase())) {
            if (typeof (FileReader) != "undefined") {
                var reader = new FileReader();
                reader.onload = function (e) {
                    var table = $("#comp-monitor tbody");
                    var rows = e.target.result.split("'n");
                    var no = 0;
                    table.empty();
                    for (var i = 0; i < rows.length; i++) {
                        no++;
                        var row = $("<tr class='odd' role='row' />");
                        var cells = rows[i].split(",");
                            t.row.add([
                                no,
                                cells[0],
                                cells[1],
                                cells[2],
                                cells[3],
                                cells[4]
                            ]).draw(false);
                        table.append(row);
                    }
                }
                reader.readAsText($("#fileUpload")[0].files[0]);
            } else {
                alert("This browser does not support HTML5.");
            }
        } else {
            alert("Please upload a valid CSV file.");
        }
    });