0
<script>

 //Handle the callback on success

 function stateChange(){

    if (xmlHttp.readyState==4 && xmlHttp.status==200) {

    //request is successful. So retrieve the values in the response
    var display_language = xmlHttp.responseText.split(';');
    alert("response: " + display_language);

    var newHtml = '{% for chunk in video.chunks.all %} {% for c in chunk.chunklets.all%} <tr> <td>{{c.start}}</td> <td> {% spaceless %} {%for item in c.contents.all%}{%if item.lang ==  display_language %}{{item.text.strip}}{%endif%}{%endfor%} {% endspaceless %} </td> <td>{{c.finish}}</td> </tr> {%endfor%} {%endfor%}';

    $('#xxx').html(newHtml);
    }
}
</script>

如果我使用上面的代码,则 display_language 值为空。但是 alert 可以打印 display_language 的值。只是 display_language 不能传入 newHtml。

如果改为

var newHtml = '{% for chunk in video.chunks.all %} {% for c in chunk.chunklets.all%} <tr> <td>{{c.start}}</td> <td> {% spaceless %} {%for item in c.contents.all%}{%if item.lang ==';

newHtml +=  display_language +'%}{{item.text.strip}}{%endif%}{%endfor%} {% endspaceless %} </td> <td>{{c.finish}}</td> </tr> {%endfor%} {%endfor%}';

错误是“”无效的块标签:'endif',预期的'empty'或'endfor'

4

1 回答 1

0

您试图过多地混合 Javascript 和 Django 模板。请记住,首先运行所有 Django,然后运行所有 javascript。因此,由于该display_language值是在 Javascript 中创建的,因此您不能在 Django 模板中使用它。我建议您将所有数据传递给 Javascript,然后在纯 javascript 中构造您的 newHtml 值。

于 2012-11-13T04:55:48.173 回答