如何在 django 模板中获取带有 javascript 变量的数组元素?

Posted

技术标签:

【中文标题】如何在 django 模板中获取带有 javascript 变量的数组元素?【英文标题】:how to get an array element with javascript variable in django template? 【发布时间】:2016-07-10 19:24:50 【问题描述】:

我正在创建一个滑块,所以我想在 Django 中获取模板数组的元素。 我的 html 文件是:

<div id="sideBar_mostVisited_control">
    <a href="">
        <p>
             mostVisited_names.0 
        </p>
    </a>
    <div>
        <p>
            1
        </p>
    </div>
    <button type="button" id="mostVisited_arrowRight">
        <img src="% static 'icons/base/arrowRight.png' %" id="mostVisited_arrowRight">
    </button>
    <button type="button" id="mostVisited_arrowLeft">
        <img src="% static 'icons/base/arrowLeft.png' %" id="mostVisited_arrowLeft">
    </button>
</div>
<div id="sideBar_mostVisited_images">
    <div>
        % for image in mostVisited_images %
            <img src=" image ">
        % endfor %
    </div>
</div>

我想在图像更改时更改名称。我的 jQuery 文件是:

var index=$('#sideBar_mostVisited_control div p').html();
$('#sideBar_mostVisited_control div p').html(index+1);
$('#sideBar_mostVisited_control a p').html(" mostVisited_names.index ");

但在 mostVisited_names.index 中无法识别索引。 我该怎么办?

【问题讨论】:

How can I pass my context variables to a javascript file in Django?的可能重复 还有:***.com/questions/298772/… 我可以在内联 js 中获取单个变量,但我无法获取传递数组的元素。 【参考方案1】:

问题:

由于 JS 文件是静态的,所以不能将 Django 变量放入其中。

解决方案:

解决这种情况的一种方法是在 html 中“存储”js 所需的 Django 变量。之后你可以抓取它并在你的 js 脚本中使用它!

一些代码:

<script type="text/javascript">
  // "store" variables from Django in the body
  $('body').data('name_index', mostVisited_names.index);
</script>

然后在你的 JS 中,从 datamap 中获取值:

var index=$('#sideBar_mostVisited_control div p').html();
$('#sideBar_mostVisited_control div p').html(index+1);
$('#sideBar_mostVisited_control a p').html($('body').data('name_index'));

【讨论】:

在这种情况下 index 不是 js 变量,我想在 , 中使用 js 变量,但我可以t. i have tried filters in django but in this case i must pass variables in , too, so i cant 在其中使用 js 变量。

以上是关于如何在 django 模板中获取带有 javascript 变量的数组元素?的主要内容,如果未能解决你的问题,请参考以下文章

带有 Rails API 的 Django 应用程序

如何在 Django 模板中的“带有模板标签”中设置 Django 渲染块值?

Django:在模板中选择带有默认字段的选项

如何在 django 模板中调用带有参数的 python 函数? [复制]

Django:在带有前缀的模板中显示表单名称

如何将带有 django 标签的 javascript 代码加载到我的 django 模板中