我使用了给定的函数来获取表的数据,并检查该值是否为负值,因此突出显示它。现在,我已经使用django的humanize使数字数字更容易阅读。但这段代码没有执行。
var formatBackground=function(){
tdArray=document.getElementsByTagName('td');
for(l=0; l<=tdArray.length-1;l++){
val = tdArray[l].innerHTML;
if(!isNaN(parseFloat(val)) && isFinite(val)){
console.log("INCOMMING VALUE: ",val);
tdArray[l].innerHTML='{{ val|floatformat:"3"|intcomma }}';//NON EXECUTED LINE OF CODE
}
if(Math.abs(parseFloat(val))!== parseFloat(val) && !isNaN(Math.abs(parseFloat(val)))){
tdArray[l].setAttribute('style','color: red');
tdArray[l].parentNode.setAttribute('style','background-color: pink');
}
}
};请帮帮我,我该怎么做?
我装了“{% load humanize %}”
还将'django.contrib.humanize'放在my INSTALLED_APPS中,在settings.py中
发布于 2013-08-06 14:44:58
这不管用。您似乎没有理解服务器端模板代码和客户端JavaScript之间的区别。在将模板代码传递给浏览器之前,将在服务器端对其进行全面评估。由客户端控件更改触发的JS不可能计算模板标记。
发布于 2013-08-06 14:45:25
您不能像这样混合服务器端( Django )和客户端( JS )代码:在向浏览器发送任何内容之前执行整个Django代码,此时将执行整个JS代码。
在您的示例中,您定义了一个JS变量val (在浏览器中),然后尝试使用Django (在浏览器看到它之前)格式化它。
https://stackoverflow.com/questions/18082686
复制相似问题