我在HTML模板中有一些JS。如何以语法方式计算某个值,将其存储在变量中,然后将其用作元素的ID?它现在不能正常工作。谁能帮我弄清楚我做错了什么?
if (key == "down"){
var tri_id = "triangle" + status_JSON['down'][1];
document.getElementById(tri_id).innerHTML = "<img class='voting' src='images/vote_grey.png'></img>";
document.getElementById(status_JSON['down'][1]).innerHTML = status_JSON["down"][0];
}
DOM是:
<script type="text/javascript">
var triangle_id = "triangle" + "{{each[1].key()}}";
</script>
<div class='votes_div'>
<table id="votes_table">
<tr>
<td>
<a href='javascript:registerVote("{{each[1].key()}}")'>
<span id=triangle_id title='vote if you think this review is helpful'><img class='voting' src='../../../../images/vote_grey.png'></img></span>
</a>
</td>
</tr>
抱歉,我是初学者!
答案 0 :(得分:2)
代码:
document.getElementById("tri_id")
实际上会查找名为 tri_id
的DOM元素。要使用变量的值,请使用:
document.getElementById(tri_id)
答案 1 :(得分:2)
HTML无法访问JavaScript环境。所以这不会像你期望的那样工作:
<script type="text/javascript">
var triangle_id = "triangle1234"
</script>
<span id=triangle_id>
span标记将包含id&#34; triangle_id&#34; (字面意思),而不是&#34; triangle1234&#34;。
看起来您正在使用某种语言将动态数字嵌入到HTML中。您必须直接在标记中执行此操作:
<span id="triangle{{each[1].key()}}">