Penukaran Jadual JSON ke HTML dengan jQuery
Menukar tatasusunan objek JSON ke dalam jadual HTML boleh menjadi tugas yang sukar, terutamanya apabila medan tertentu perlu dikecualikan. Walau bagaimanapun, jQuery menyediakan penyelesaian yang elegan dan mudah untuk cabaran ini.
Menggunakan Kaedah getJSON() jQuery
Kaedah getJSON() mengambil data JSON secara tidak segerak daripada URL yang ditentukan dan melaksanakan fungsi panggil balik apabila berjaya mendapatkan semula. Dalam fungsi panggil balik, setiap objek JSON dalam tatasusunan diulang dan setiap medan ditukar menjadi sel jadual HTML.
Membuat Struktur Jadual
Yang berikut coretan kod menunjukkan cara menggunakan getJSON() untuk menjana jadual HTML:
$.getJSON(url , function(data) { var tbl_body = ""; var odd_even = false; $.each(data, function() { var tbl_row = ""; $.each(this, function(k , v) { tbl_row += "<td>"+v+"</td>"; }); tbl_body += "<tr class=\""+( odd_even ? "odd" : "even")+"\">"+tbl_row+"</tr>"; odd_even = !odd_even; }); $("#target_table_id tbody").html(tbl_body); });
Dalam kod ini, pemilih $("#target_table_id tbody") mencari elemen badan jadual dengan ID yang ditentukan dan mengisinya dengan HTML yang dijana secara dinamik.
Tidak Termasuk Medan Khusus
Untuk mengecualikan medan tertentu daripada jadual, anda boleh mentakrifkan objek yang menyimpan kekunci medan yang anda mahu termasuk. Dalam fungsi panggil balik getJSON(), semak sama ada kunci medan wujud dalam objek ini dan masukkannya dalam baris jadual jika nilainya benar.
Alternatif Tanpa Suntikan
Untuk mengelakkan potensi kelemahan suntikan, pertimbangkan untuk menggunakan alternatif bebas suntikan berikut:
$.getJSON(url , function(data) { var tbl_body = document.createElement("tbody"); var odd_even = false; $.each(data, function() { var tbl_row = tbl_body.insertRow(); tbl_row.className = odd_even ? "odd" : "even"; $.each(this, function(k , v) { var cell = tbl_row.insertCell(); cell.appendChild(document.createTextNode(v.toString())); }); odd_even = !odd_even; }); $("#target_table_id").append(tbl_body); //DOM table doesn't have .appendChild });
Kod ini menggunakan kaedah insertRow() dan insertCell() secara langsung dan bukannya bergantung pada rentetan HTML, memastikan lebih banyak pelaksanaan selamat.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar data JSON kepada jadual HTML menggunakan jQuery, sambil mengecualikan medan tertentu dan mengelakkan kelemahan suntikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!