JS没有完全出现在屏幕上,但完全出现在console.log中

时间:2017-08-08 09:39:08

标签: javascript jquery html json

我写了一个javascript代码来根据我的JSON绘制一个表 有一些奇怪的事情。我编写代码来绘制一个将出现在我的屏幕上的表,但它并没有完全显示。但如果我在console.log中声明它,它就会显得完整。什么错了?

这是表格的排版和console.loghttp://prntscr.com/g5shkn * Sry它并不是一件容易的事。

描述:

  1. 它是从json呈现的表格,你可以看到它只有3 <tr></tr>userproduk A paket Aproduk B paket B
  2. 该表中的console.log版本,您可以看到他们有3 <tr></tr>但其中有<td></td>
  3. 如果我使用chrome中的开发人员工具检查它,它就不存在(这是指向屏幕截图的链接:http://prntscr.com/g5sp7q)。如果您看到我的代码,则会显示<tr class="trBot"></tr>,但在inspect session中,该地区没有trBot

    这是我的javascript代码:

        $.when(
            $.ajax({
                type: "GET",
                url: 'http://www.mocky.io/v2/598960ad410000d300820df5',
                dataType: "JSON",
                timeout: 10000,
                success: function(result){
                    console.log("Ajax User berjalan, berikut adalah daftar Jumlah User dari Produk yang diterima : ");
                    $.each(result, function (index, el) {
                        console.log("jumlah user : " + el.jumlah_user + " , id jumlah user : " + el.id);
                    });
                },
                error: function(xhr, textStatus, thrownError) {
                    $('#prosesloaddata').hide();
                    $('#dialogerror').show();
                    $("#pesanerror1").html("Terjadi Masalah, Silahkan Periksa Kembali Koneksi Internet Anda.");
                    $("#pesanerror2").html(xhr.error);
                    $("#pesanerror3").html("");
                    console.log("error ketika memanggil data JSON Jumlah User dengan AJAX,", xhr.error);
                }
            }),
            $.ajax({
                type: "GET",
                url: 'http://www.mocky.io/v2/5989607c410000d300820df4',
                dataType: "JSON",
                timeout: 10000,
                success: function(result){
                    console.log("Ajax Paket berjalan, berikut adalah daftar nama Paket dari produk yang diterima : ");
                    $.each(result, function (index, el) {
                        console.log("nama paket : " + el.nama + " , id nama paket : " + el.id);
                    });
                },
                error: function(xhr, textStatus, thrownError) {
                    $('#prosesloaddata').hide();
                    $('#dialogerror').show();
                    $("#pesanerror1").html("Terjadi Masalah, Silahkan Periksa Kembali Koneksi Internet Anda.");
                    $("#pesanerror2").html(xhr.error);
                    $("#pesanerror3").html("");
                    console.log("error ketika memanggil data JSON Paket Produk dengan AJAX,", xhr.error);
                }
            }),
            $.ajax({
                type: "GET",
                url: 'http://www.mocky.io/v2/598960cf410000d800820df7',
                dataType: "JSON",
                timeout: 10000,
                success: function(result){
                    console.log("Ajax Harga berjalan, berikut adalah daftar harga dari produk yang diterima : ");
                    $('#prosesloaddata').hide();
                    $.each(result, function (index, el) {
                        $.each(el, function (index1, el1) {
                            console.log("harga paket : " + el1.harga + " , id harga paket : " + el1.id + " , tanggal efektif : " + el1.tanggal_efektif);
                        })
                    });
                },
                error: function (xhr, textStatus, thrownError) {
                    $('#prosesloaddata').hide();
                    $('#dialogerror').show();
                    $("#pesanerror1").html("Terjadi Masalah, Silahkan Periksa Kembali Koneksi Internet Anda.");
                    $("#pesanerror2").html(xhr.error);
                    $("#pesanerror3").html("");
                    console.log("error ketika memanggil data JSON Harga dengan AJAX,", xhr.error);
                }
            })
        ).then(function(a, b, c){
             class arranger {
                 constructor(a, b, c) {
                     this.a = a;
                     this.b = b;
                     this.c = c;
                     this.p = "";
                 }
                 qq() {
                     var packer = [],
                         y;
                     c = c[0];
                     for (var x = 0; x < c.length; x++) {
                         var wd = typeof packer[[c[x]['nama_id']]];
                         if (wd == "undefined") {
                             packer[c[x]['nama_id']] = [{
                                 "harga": c[x]['harga'],
                                 "jumlah_user_id": c[x]['jumlah_user_id']
                             }];
                         } else {
                             packer[c[x]['nama_id']].push({
                                 "harga": c[x]['harga'],
                                 "jumlah_user_id": c[x]['jumlah_user_id']
                             });
                         }
                     }
                     var p = "<tr>";
                     for (x in a[0]) {
                         p += "<th>" + a[0][x]['jumlah_user'] + " user</th>";
                     }
                     p += "</tr>";
                     for (x in b[0]) {
                         p += '<tr class="trTop"><td colspan="' + (a[0].length - 2) + '">' + b[0][x]['nama'] + '<td colspan="2">' + b[0][x]['masa_training'] + ' ' + b[0][x]['masa_maintenance'] + '</td></tr>';
                         if (typeof packer[b[0][x]['id']] !== "undefined") {
                             p += '<tr class="trBot">';
                             for (y in packer[b[0][x]['id']]) {
                                 p += '<td>' + packer[b[0][x]['id']][y]['harga'] + '</td>';
                             }
                             p += '</tr>';
                         }
                     }
                     return p;
                 }
                 iii($qwe) {
                     this.p = $qwe;
                 }
                 zzz() {
                     document.getElementById('wg').innerHTML = this.p;
                 }
             }
             (function () {
                var $ar = new arranger(a, b, c);
                $ar.iii($ar.qq());
                console.log($ar.qq());
                $ar.zzz()
             })();
        });
    

    P.S:

    1. mocky.io不是我真正的JSON API链接,我只是使用它,因为我的API仍在localhost中,但可以肯定的是,它包含相同的JSON。
    2. 屏幕截图中提到的console.log来自console.log($ar.qq());
    3. 对不起我的英语和我在我的代码中使用的语言,如果我在这里写的信息对你来说不够,请问我。谢谢你们。

      编辑:如果你需要它,这是我的css代码:

      table {
          width: 100%;
          display: table;
          background-color:#000;
          color:#fff;
          padding:20px;
          border-collapse:separete !important; 
      }
      td {
          padding:10px !important;
      }
      .trTop td:last-child {
          text-align:right !important;
      }
      .trBot td {
          text-align:right !important;
      }
      

      编辑2:我手动尝试(将html表格行从console.log手动复制粘贴到<table id="wg"></table>,这就是结果: http://prntscr.com/g5ssd8,这是html代码:

              <table id="wg">
                  <tr>
                      <th>1 user</th>
                      <th>2 user</th>
                      <th>5 user</th>
                      <th>30 user</th>
                  </tr>
                  <tr class="trTop">
                      <td colspan="2">Produk A Paket A
                      <td colspan="2">1 x 1 Jam 1 Bulan</td>
                  </tr>
                  <tr class="trBot">
                      <td>1000</td>
                      <td>2000</td>
                      <td>3000</td>
                      <td>4000</td>
                  </tr>
                  <tr class="trTop">
                      <td colspan="2">Produk A Paket B
                      <td colspan="2">1 x 2 Jam 1 Bulan</td>
                  </tr>
              </table>
      

2 个答案:

答案 0 :(得分:1)

缺少两个td结束标记:

  • “Produk A Paket A”之后
  • “Produk A Paket B”之后

在他们之后添加</td>,无论你创建HTML,问题都应该解决。

答案 1 :(得分:0)

好吧,它现在解决了。

谢谢大家。

我只想补充一下:

this.p = p;

在此代码运行之前:

return p;