我写了一个javascript代码来根据我的JSON绘制一个表
有一些奇怪的事情。我编写代码来绘制一个将出现在我的屏幕上的表,但它并没有完全显示。但如果我在console.log
中声明它,它就会显得完整。什么错了?
这是表格的排版和console.log
:http://prntscr.com/g5shkn
* Sry它并不是一件容易的事。
描述:
<tr></tr>
,user
,produk A paket A
和produk B paket B
console.log
版本,您可以看到他们有3 <tr></tr>
但其中有<td></td>
。 如果我使用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:
console.log
来自console.log($ar.qq());
对不起我的英语和我在我的代码中使用的语言,如果我在这里写的信息对你来说不够,请问我。谢谢你们。
编辑:如果你需要它,这是我的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>
答案 0 :(得分:1)
缺少两个td结束标记:
在他们之后添加</td>
,无论你创建HTML,问题都应该解决。
答案 1 :(得分:0)
谢谢大家。
我只想补充一下:
this.p = p;
在此代码运行之前:
return p;