Javascript 你能在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

这是我目前拥有的一个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>";
}
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并使用该值。