Javascript 你能在html脚本中对双大括号内的变量进行数学运算吗?
这是我目前拥有的一个html文件:Javascript 你能在html脚本中对双大括号内的变量进行数学运算吗?,javascript,html,django,Javascript,Html,Django,这是我目前拥有的一个html文件: <!DOCTYPE html> <html> {{unit.unit_class}} <div id="stats"></div> <script> var str ="", i; for(i = 1; i<=99; i++) { str = str + "<p>level " + i + ": hp {{unit.hp_current}}</p>"; } d
<!DOCTYPE html>
<html>
{{unit.unit_class}}
<div id="stats"></div>
<script>
var str ="", i;
for(i = 1; i<=99; i++)
{
str = str + "<p>level " + i + ": hp {{unit.hp_current}}</p>";
}
document.getElementById("stats").innerHTML = str;
</script>
</html>
{{unit.unit_class}
var str=“”,i;
对于(i=1;iNo),django模板语言不支持对变量的操作。您需要在代码中计算值,然后将它们传递给模板。另一种方法是在模板中使用函数,该函数将计算您需要的值:
当模板引擎遇到一个变量时,它会计算
变量,并将其替换为结果。
如果结果值是可调用的,则调用时不带参数。
调用的结果将成为模板值。
另一种选择是使用过滤器:
否,django模板语言不支持对变量的操作。您需要在代码中计算值,然后将它们传递给模板。另一种方法是在模板中使用函数,该函数将计算您需要的值:
当模板引擎遇到一个变量时,它会计算
变量,并将其替换为结果。
如果结果值是可调用的,则调用时不带参数。
调用的结果将成为模板值。
另一种选择是使用过滤器:
使用模板引擎将变量直接设置到HTML中,我认为您应该将其存储在某个变量中,而不是执行其他一些艺术操作
<!DOCTYPE html>
<html>
<div id="stats"></div>
<script type="text/javascript">
let template_value = "{{unit.unit_class}}";
let hp_current = parseFloat(template_value);
let str = '';
for(let i = 1; i<=99; i++)
{
str = str + `<p>level ${i} hp ${hp_current}</p>`;
}
document.getElementById("stats").innerHTML = str;
</script>
</html>
让template_value=“{unit.unit_class}}”;
让hp_current=parseFloat(模板_值);
设str='';
对于(设i=1;i使用模板引擎将变量直接设置到HTML中,我认为您应该将其存储在某个变量中,而不是执行其他一些艺术操作
<!DOCTYPE html>
<html>
<div id="stats"></div>
<script type="text/javascript">
let template_value = "{{unit.unit_class}}";
let hp_current = parseFloat(template_value);
let str = '';
for(let i = 1; i<=99; i++)
{
str = str + `<p>level ${i} hp ${hp_current}</p>`;
}
document.getElementById("stats").innerHTML = str;
</script>
</html>
让template_value=“{unit.unit_class}}”;
让hp_current=parseFloat(模板_值);
设str='';
对于(让i=1;i这里有一个解决方案,它纯粹使用Django模板标签复制JS
<div id="stats">
{% with ''|center:99 as range %}
{% for _ in range %}
<p>level {{ forloop.counter }}: hp {{ unit.hp_current }}</p>
{% endfor %}
{% endwith %}
</div>
这是一个完全使用Django模板标记复制JS的解决方案
<div id="stats">
{% with ''|center:99 as range %}
{% for _ in range %}
<p>level {{ forloop.counter }}: hp {{ unit.hp_current }}</p>
{% endfor %}
{% endwith %}
</div>
如果您使用的是django
那么您可以做一些事情,比如{unit.hp\u current}添加:“3”}
如果您使用的是django
那么您可以做一些事情,比如{unit.hp\u current}添加:“3”
您的意思是让模板的值=“{{unit unit hp\u current}”
代替让模板的值=“{unit unit unit unit.unit class}”
?在我的模型中,unit_类是引用不同类的外键,hp_current是一个DecimalField。我的意思是,如果你这样写,让template_value=“{{unit.hp_current}}”;它只是在javascript中被当作字符串处理。如果你用一些数字替换它,那么代码将从下一行开始工作,否则在这种情况下,hp_当前将包含NAN。我建议将{unit.unit_class}}添加到任何隐藏的div中,并使用document.getElementById('id')获取javascript中的值.innerHTML并随意使用该值。您的意思是let template_value=“{{unit.hp\u current}}”
而不是let template_value=“{{unit.unit\u class}”
?在我的模型中,unit_类是引用不同类的外键,而hp_current是一个十进制字段。我的意思是,如果您这样编写,let template_value=“{unit.hp_current}}”,它在javascript中被当作一个字符串处理。如果您用一些数字替换它,那么代码将从下一行开始工作,否则在这种情况下,hp_current将包含NAN。我建议将{unit.unit_class}添加到任何隐藏的div中,并使用document.getElementById('id')获取javascript中的值.innerHTML并使用该值。