我有一个模板,用于从数据库中获取值并使用模板标记显示数据。返回的值是0& 1,我可以;真的控制它,所以我试图得到一些jquery来改变值,所以0 ='不'和1 ='是'
我已在此处使用此代码http://jsfiddle.net/a9cvx/236/
使用此
$(document).ready(function() {
$("body").html($("body").html().replace(/0/g,'<b>abcde-fghi</b>'));
$("body").html($("body").html().replace(/1/g,'<b>yes</b>'));
)};
这是我的模板代码。
...
<tr>
<td>Reboot VM</td>
<td>{{ col.t_rebootvm }}</td>
<td>waiting</td>
</tr>
....
所以{{col.t_rebootvm}}来自数据库,等于0或1.
我可以在加载html时看到我的jquery js文件在页面源代码中。 但是当我在模板中使用这个jquery代码时,值不会改变。这是因为正在渲染模板而且值0或1在加载时不可用?这是别的吗?
非常感谢 - Oli
答案 0 :(得分:0)
替换整个HTML文档中的字符串不是一个好习惯。你会松开事件,很可能会取代你不想要的东西。它也可能很慢。
你应该至少尝试在选择器中更具体,例如:
$(function() {
$('td').each(function() {
var html = $(this).html();
$(this).html(
html.replace(/0/,'<b>no</b>')
.replace(/1/,'<b>yes</b>')
);
});
});
不要忘记将DOM逻辑放在DomReady回调中(我使用$(function(){...
)。无论如何你的小提琴工作的原因是因为jsFiddle在HTML下面添加了脚本,因此没有必要将它包装在domReady回调中。但是,如果脚本位于文档的HEAD中,则需要执行此操作。