Javascript - 动态创建元素的ID -

时间:2013-05-28 01:42:06

标签: javascript html5

我在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>

抱歉,我是初学者!

2 个答案:

答案 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()}}">