我是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模板。谢谢你抱歉我的英语不好。
答案 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
,则应该可以访问myImgSrc
和Foo
的值。