Следующий код выводит таблицу со значениями и в соответствии со значением получает макет. Я использую jQuery (Ajax) для обновления информации каждые 10 секунд.
скрипт php, который генерирует требуемые переменные и сохраняет (отображает) их в массиве json (example.php)
$variable1 = 20;
if ($variable1 > 0) {
$td_variable1class="positive";
} else {
$td_variable1class="negative";
}
$array['variable1'] = $variable1;
$array['td_variable1'] = $td_variable1;
echo json_encode($array);
таблица html, в которой переменная извлекается из json, созданного example.php:
<table>
<tr>
<td class='variable1class'>
<div id='variable1'></div>
</td>
</tr>
</table>
javascript:
<script type="text/javascript">
$(function() {
refresh();
});
function refresh() {
$.getJSON('example.php', function(data) {
$('div#variable1').html(data.variable1);
$('td.td_variable1').addClass(data.td_variable1);
});
setTimeout("refresh()",10000);
}
Проблема в том, что "addClass" добавляет класс к существующему классу, в результате чего получается следующий результат:
перед обновлением:
<td class="td_variable1 positive">
после (при условии, что переменная изменилась с положительной на отрицательную):
<td class="td_variable1 positive negative">
Я пытался избежать этого, используя removeclass:
$('td.td_variable1').removeClass().addClass(data.td_variable1);
Но затем фактическое имя класса td удаляется, и мой результат выглядит следующим образом:
<td class="negative">
и это должно выглядеть так:
<td class="td_variable1 negative">
Заранее спасибо за помощь!