节点的节点值能用作参数吗?

2019-12-10 23:50:15 +08:00
 getlost

后台是用 Django 写的,我想模仿豆瓣电影写一个页面,把电影海报和名字、评分等信息放上去,以下是代码

{% for film in movie %}
        <div class='movie'>
            <li id="film_path" hidden="hidden">{{ film.image_local_path }}</li> 
            // film.image_local_path 是从数据库里拉出来的图片地址,
            // 用了 Django 的 load staticfiles,数据长这样 "{% static 'image/26235346.jpg' %}",
            <li><img id="img" alt="图片不见了" /></li>
            <li>{{ film.name }}</li>
        </div>
    {% empty %}
        <p>这里没有东西</p>
    {% endfor %}

以下为 JavaScript 代码,主要逻辑是找到 Id 为 film_path 的 li 标签文本节点值,然后赋值给 Id 为 img 的 img 标签,把图片加载到页面上。但是现在遇到一个问题,把节点值当做参数传入后,图片未加载。

 function changeImgSrc() {
            var film_img_li = document.getElementById("film_path");
            var film_path_childnode_nodeValue = film_img_li.childNodes[0].nodeValue; 
            var set_img_path = document.getElementById("img");
            set_img_path.setAttribute("src", film_path_childnode_nodeValue);

当我把地址直接当做参数传入后,比如下面这样是可以实现想要的效果的,不知道问题出在哪了?

set_img_path.setAttribute("src", "{% static 'image/26235346.jpg' %}");
2665 次点击
所在节点    JavaScript
2 条回复
crystom
2019-12-11 01:25:29 +08:00
id 写在循环里重复了,应该是页面唯一才能找到
getlost
2019-12-11 23:01:38 +08:00
@crystom 应该不是这个问题,因为当我把地址直接传入之后,也就是把`{% static 'image/26235346.jpg' %}`直接传入和用节点值实现的效果不一致。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/627797

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX