【发布时间】:2014-10-15 22:12:39
【问题描述】:
以下代码输出一个带有值的表格,并根据该值得到一个布局。我使用 jQuery (Ajax) 每 10 秒更新一次信息。
生成所需变量并将它们存储(回显)到 json 数组(example.php)中的 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);
从example.php生成的json中检索变量的html表:
<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">
提前感谢您的帮助!
【问题讨论】:
-
下面的 cmets 令人困惑。你能简单地从浏览器中保存一个示例页面,以便我们可以看到生成的代码和 HTML(不仅仅是源代码)吗?
标签: javascript jquery ajax addclass removeclass