【问题标题】:passing html tags arguments in django template to javascript function将 django 模板中的 html 标签参数传递给 javascript 函数
【发布时间】:2020-07-06 05:44:14
【问题描述】:

我想在 django 模板中的 javascript 中将 HTML 字符串作为参数传递。 这里是: 我有一堆链接,它们在我的数据库中。 我可以通过 {% for link in links %} {{ link }} {% endfor %} 在我的 django 模板中访问这些链接。 例如,我可以使用 {{ link.name }} 访问某个链接名称,但我也为每个链接指定了内容;喜欢{{ link.content }}

问题是;在我的模板中,我有一个侧边栏导航,其中包含多个链接的 url,我想在该页面中显示单击链接的内容。为此,我编写了一个名为 display 的 javascript 函数:

<script>
        function display(str){
                   document.getElementById('cont').innerHTML = str:                     
                      }
</script>

将访问:

<div id="cont"> </div>

这里是:

<a class="nav-link active" href="{{ link.link }}" onclick="display('{{ link.content }}')">{{ link.name }}</a>

在上面的代码中,显示功能不起作用。 我的意思是,当我单击侧边栏中的链接时,它不显示任何内容,实际上什么也没有。 但是为了测试,当我将显示参数 {{ link.content }} 更改为 '&lt;h1&gt;hello&lt;h1&gt;' 之类的其他内容时,它起作用了。 p.s:我的链接内容是一个内联的 html 标签,例如: '&lt;h1&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp' 请注意,我将&lt;script&gt; ... 放在&lt;body&gt; 的底部。 我将非常感谢任何帮助和指导。

【问题讨论】:

  • 你能通过console.log(str)查看控制台中的内容吗?
  • 没有...但是当我检查控制台时看到这个错误:Uncaught SyntaxError: Invalid or unexpected token
  • 请分享截图

标签: javascript html django django-templates


【解决方案1】:

首先,您能否检查一下您的 {{ link.content }} 是否为空。另外,尝试将脚本标签放在顶部。

【讨论】:

  • 不是空的,我把脚本放在最上面。但什么也没发生。
  • 由于您使用的是“”,它的含义和用法与“”略有不同。尝试不使用“”。
【解决方案2】:
onclick="display('{{ link.content }}')"

插入link.content时不要用单引号括起来

使用:

onclick="display({{ link.content }})"

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 2021-06-05
    • 2016-05-17
    • 2020-05-20
    • 2011-04-18
    • 2011-01-08
    • 2020-06-04
    • 2017-08-11
    • 2010-12-26
    相关资源
    最近更新 更多