javascript - 使用javascript数组时表格内容不显示?

标签 javascript jquery arrays html datatables

下面是我的代码,但它还不能工作。我应该做什么来修复它?

特别参见function showtbl();

我真正的问题是在 function showtbl(); 中,它不显示表格的内容。

var tampilqr = function (kode) {
    var url = 'http://www.playstore.co.id/p/download.html?qr='
    var urlfix = url + kode
    var keluar = '<a style="float:right;color:#999;text-decoration:none;background:#fff;width:20px;text-align:center;font-weight:bold;" onclick="rem();">X</a><br>'
    var cek = keluar + '<iframe src="' + urlfix + '"></iframe>'
    if (jscd.os == 'Android') {
        window.location.href = urlfix;
    } else {
        uglipop({
            class: 'dl',
            source: 'html',
            content: cek
        });
    }
}

var tampilss = function (kode) {
    var url = 'https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/detil.html?ss='
    var urlfix = url + kode
    var keluar = '<a style="float:right;color:#999;text-decoration:none;background:#fff;width:20px;text-align:center;font-weight:bold;" onclick="rem();">X</a><br>'
    var cek = keluar + '<iframe src="' + urlfix + '"></iframe>'
    uglipop({
        class: 'ss',
        source: 'html',
        content: cek
    });
}

var rem = function () {
    remove();
}

function tulis() {
    document.getElementById("cari").placeholder = "cari aplikasi";
    if (on_index = true) {
        window.location = window.location.pathname + '?apps='
    }
}

function showtbl() {
    var img = "<img src='logo/"
    var imgt = ".png'/>"
    var li = "<br /> Link: <a href='?apps="
    var lin = "'>http://playstore.co.id/?apps="
    var link = "</a><br /> Terbit: "
    var b = "<button type='button' class='btn btn-danger' onclick='tampilss(&quot;"
    var bt = "&quot;);'>Screenshoot</button><br><button type='button' class='btn btn-success' onclick='tampilqr(&quot;"
    var btn = "&quot;);'>Download</button>"
    var A1 = "ss-clothes"
    var A2 = "korselindo"
    var A3 = "real-hiphop-shop"

    /* if HTML, it must be:
    <tr>
        <td><img src="logo/ss-clothes.png" /></td>
        <td>SS-Clothes<br /> Link: <a href="http://playstore.co.id?apps=ss-clothes">http://playstore.co.id?apps=ss-clothes</a><br /> Terbit: 23-06-2015</td>
        <td><button class="btn btn-danger" onclick="tampilss(&quot;ss-clothes&quot;);" type="button">Screenshoot</button><br />
        <button class="btn btn-success" onclick="tampilqr(&quot;ss-clothes&quot;);" type="button">Download</button></td>
    </tr>
    */

    var values = new Array(3);
    values[1] = [img + A1 + imgt, A1 + li + A1 + lin + A1 + link, b + A1 + bt + A1 + btn];
    values[2] = [img + A2 + imgt, A2 + li + A2 + lin + A2 + link, b + A2 + bt + A2 + btn];
    values[3] = [img + A3 + imgt, A3 + li + A3 + lin + A3 + link, b + A3 + bt + A3 + btn];

    var myTable = document.getElementById("myTable");

    // IE7 only supports appending rows to tbody
    var tbody = document.createElement("tbody");

    // for each outer array row
    for (var i = 1; i < values.length; i++) {
        var tr = document.createElement("tr");

        // for each inner array cell
        // create td then text, append
        for (var j = 0; j < values[i].length; j++) {
            var td = document.createElement("td");
            var txt = document.createElement("span");
            txt.innerHTML = values[i][j];
            td.appendChild(txt);
            tr.appendChild(td);
        }

        // append row to table
        // IE7 requires append row to tbody, append tbody to table
        tbody.appendChild(tr);
        myTable.appendChild(tbody);
    }

}
<!DOCTYPE html>
<html class="no-js">

<head>
    <meta charset="UTF-8">
    <title>Download Aplikasi</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
    <meta name="description" content="Toko aplikasi android Indonesia, apptoko, download aplikasi android .apk, appstore alternatif Google play store android market">
    <link href="https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/css/bootstrap.min.css" rel="stylesheet" />
    <link href="https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/css/style.css" rel="stylesheet" />
    <script src='https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/js/modernizr.js'></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/js/jquery.dataTables.js"></script>
    <link href="https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/css/jquery.dataTables.min.css" rel="stylesheet" />
    <script async="" src="https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/js/bootstrap.min.js"></script>
    <script async="" src="https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/js/os.js"></script>

    <link href="https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/css/uglipop.css" rel="stylesheet" />
    <script async="" src="https://dfe4876b91450c3efbab76e8d43c4a665e738138-www.googledrive.com/host/0B94BKN-oncxmfllMNlZkWGJTaF9QWmtLOVktR3djU3B0NGJuTFVwS2tDMS1jYzZkNEN6Y00/js/uglipop.js"></script>

</head>

<body onLoad="tulis();showtbl();">

    <div id="atas">
        <a href="javascript:window.location.replace('http://www.playstore.co.id?apps=')"><img src="http://1.bp.blogspot.com/-UON5Z5IIOus/VdH_gr8XRXI/AAAAAAAAAbY/Q-I4QfbZr9U/s1600/playstore-indonesia-logo.gif" /></a>
    </div>

    <table class="table table-striped" id="myTable">
        <thead>
            <tr>
                <th>Logo</th>
                <th>Nama App</th>
                <th>Tindakan</th>
            </tr>
        </thead>
        <tbody>
            <tr></tr>
        </tbody>
    </table>
    <script>
        $(document).ready(function () {
            $("img").error(function () {
                $(this).hide();
            });

            var table = $('#myTable').dataTable({
                "oSearch": {
                    "sSearch": $.urlParam('apps'),
                    responsive: true
                },
            });
        });

        $.urlParam = function (name) {

            var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
            return results && results[1].replace(/(^\s+|[^a-zA-Z ]+|\s+$)/g, ' ');
            return results && results[1].replace(/\s+/g, ' ');

            if (!results) {
                return '//';
            }
            return results[1] || '';
        };
    </script>
</body>

</html>

我真正的问题是在 function showtbl(); 中,它不显示表格的内容。

请运行代码。我应该做什么来修复它?

最佳答案

My real problem is in function showtbl(); which does not display the contents of the table.

如果去掉不相关的空<tbody><tr></tr></tbody>它有效:

<强> http://jsfiddle.net/yujpozf9/1/

dataTables 不喜欢多个<tbody>元素,当然不是<tbody>具有奇数列的元素(比如没有列)。

同时移动responsive: true到它所属的位置并删除尾随的 ' - 你似乎非常关注 IE7,尾部引号是 IE7 的 killer 。

var table = $('#myTable').dataTable({
   responsive: true,
   "oSearch": {
      //"sSearch": $.urlParam('apps')
   }
});

已注释掉$.urlParam因为这不是主要问题,而且我不完全理解你想要做什么。您的代码是我见过的数据表最奇特的用途之一(无意冒犯!) - 尝试阅读有关列渲染的内容,我想您会更高兴这样做 -> https://datatables.net/examples/advanced_init/column_render.html - 一般的官方示例。

此外,您可以使用 dataTables CDN,而不是使用 google Drive - 更容易维护和更改版本。我注意到您正在使用 v1.10.2 :

<script type="text/javascript" src="//cdn.datatables.net/1.10.2/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.2/css/jquery.dataTables.min.css"/>

关于javascript - 使用javascript数组时表格内容不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704395/

相关文章:

java - for 循环中的 JTextField 数组将自身添加到布局中

javascript - 使用 IndexOf 分割数组不起作用

arrays - 如何克隆长度大于 32 的数组?

javascript - 使用 typescript 和 jquery 突出显示 div 或 span 内的文本

javascript - 如何调用 HTML 文件中的一段 javascript

javascript - 在ajax调用之外解析json文件后,数据没有打印在控制台上

php - JavaScript 对象到 Json。 PHP 无法解码序列化 JSON

javascript - 背景图像更改按钮在 Firefox 中的默认样式

javascript - ES6 |更改B类中A类的数据?

javascript - 如何在回调函数中更新和传递变量