У меня есть ответ JSON, что-то вроде следующего:
[
[
"hospital_name",
"Average Covered Charges",
"Average Total Payments",
"Total Discharges"
],
[
"MERCY REGIONAL HEALTH CENTER",
6888.8181818182,
2890.5454545454,
11
],
[
"BUTLER MEMORIAL HOSPITAL",
13699.818181818,
2934.5454545454,
11
],
[
"METHODIST MANSFIELD MEDICAL CENTER",
23913.909090909,
2964.8181818182,
11
],
[
"EMORY JOHNS CREEK HOSPITAL",
10976.727272727,
2993.5454545454,
11
]
]
и я пытаюсь сделать что-то вроде этого:
success:(function(data) {
jQuery.each(data, function(key, value) {
jQuery('table[name=drg_table]')
.append(
jQuery('<td>').text(key[0]),
jQuery('<td>').text(key[1]),
jQuery('<td>').text(key[2])
);
});
}
Но я не уверен, что это правильный способ обновить мою таблицу (которая уже существует). Я просто хочу обновить целую таблицу новыми значениями.
Первое: вы не можете иметь <td>
элементов в качестве дочерних элементов <table>
- вы, вероятно, хотите добавить к <tbody>
и обернуть <td>
в <tr>
Второй - аргумент value
содержит массив, а не key
key
- фактически индекс
Вы можете создать такую строку, а затем добавить в свой html после того, как будет создана полная строка элементов
var str = '';
jQuery.each(data, function (key, value) {
str += '<tr><td>' + value[0] + '</td>'
+ '<td>' + value[1] + '</td>'
+ '<td>' + value[2] + '</td>'
+ '<td>' + value[3] + '</td></tr>';
});
jQuery('table[name=drg_table] tbody').html(str);
Недавно я недавно услышал о специальном плагине для отображения JSON в виде красивых таблиц под названием "dynatable": http://dailyjs.com/2013/12/17/frontend-roundup/
Вы можете посмотреть.
У вас уже есть таблица с идентификатором #records_table
, поэтому
Пытаться,
jQuery('#records_table tr').remove(); //To clear the rows (pointed by @nunners)
jQuery.each(data, function(key, value) {
jQuery('#records_table')
.append('<tr><td>' + value[0]
+ '</td><td>' + value[1]
+ '</td><td>' + value[2]
+ '</td><td>' + value[3]
+ '</td></tr>');
});
Я думаю, что вы обновили свой вопрос с помощью нового селектора, поэтому измените свой селектор как,
jQuery('table[name=drg_table]')
в приведенном выше коде.
update whole table with new values
, было бы неплохо также включить jQuery('#records_table tr').remove();