Javascript(字符串)与Django模板的平等

时间:2017-10-25 14:01:18

标签: javascript django

我是Javascript中的新手,这是我的包含django模板的html代码: 我有img元素,其中src属性是" {%static' basic / myImage.jpg' %}" 其中django模板加载静态文件

<img src="{% static 'basic/myImage.jpg' %}" alt="img"/>

然后我有脚本(javascript)让我们说main.js的目的是选择 img src属性哪个将按字面意思返回&#34; {%static&#39; basic /myImage.jpg' %}&#34;

var myImg = document.querySelector('img');
var myImgSrc = myImg.getAttribute('src'); //return a string "{% static 'basic/myImage.jpg' %}"

我的问题是当我在Web控制台(检查元素)中尝试相等测试时:

myImgSrc === "{% static 'basic/myImage.jpg' %}" 返回false

可能有转义字符或特殊字符来表示我的django模板,有人可以解释如何在文字js字符串中表示django模板。谢谢你抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

很难准确说出你想要做什么,但我会尝试提供一些建议。

呈现模板时,{% static 'basic/myImage.jpg' %}也会呈现,因此它变为&#34; /static/app/images/basic/myImage.jpg&#34;管他呢。所以你的javascript评估总是错误的。

如果您需要javascript来获取{% static 'basic/myImage.jpg' %}返回的实际值,那么您需要将脚本包含在模板本身中,而不是单独的main.js文件中。

因此,在template.py文件的底部,您可以使用以下内容:

<script type="text/javascript>
    var myImg = document.querySelector('img');
    var myImgSrc = myImg.getAttribute('src');
    var Foo = "{% static 'basic/myImage.jpg' %}";
    if (myImgSrc === Foo) { // this should be true
        // do something
        }
</script>

此外,如果此脚本标记后面包含main.js,则应该可以访问myImgSrcFoo的值。