我有一个Javascript函数,可在单击按钮时将一些HTML代码插入Flask应用程序的HTML页面中。这是Javascript函数:
function add_html(n){
var snippet = "<table> \
<thead> \
<tr> \
<th scope=\"col\"></th> \
'{% for keys in data[n]['returns'] %}<th scope=\"col\">{{keys}}</th>{% endfor %}' \
</tr> \
</thead>";
$(snippet).insertAfter("#div-id");
}
我希望将JavaScript变量n
替换为它的值(它是整数),但是它不起作用...
如果我手动将其替换为1
之类的整数,它将起作用。
我试图将n
替换为" + n + "
或' + n + '
,但没有任何效果。任何想法将不胜感激!
答案 0 :(得分:0)
当然不会改变,您将n作为字符串文字传递。
您可能想要类似的东西:
var snippet = ... {%表示数据中的键['+ n +'] ['returns']%} ...
答案 1 :(得分:0)
对我有用的直接解决方案是将python中的render_template发送的变量的内容存储到Javascript变量中,并在不使用任何Jinja表达式的情况下按需使用。
<script type="text/javascript">
var stored_data = {{data|safe}};
function add_html_tab(n){
var keys_columns_html = "";
for(keys in stored_data[n-1]["returns"]){
console.log(keys);
keys_columns_html += "<th scope=\"col\">" + keys + "</th>";
}
$(keys_columns_html).insertAfter("#myID");
}
</script>