У меня есть JS в HTML-шаблоне. Как я могу синтаксически вычислить некоторое значение, сохранить его в переменной, а затем использовать его как идентификатор элемента? Сейчас это не работает. Может ли кто-нибудь помочь мне выяснить, что я делаю неправильно?Javascript - динамическое создание идентификатора для элемента -
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>
К сожалению я новичок!
'document.getElementById (tri_id)' ** (без кавычек) ** будет работать, но только если есть на самом деле элемент с таким идентификатором уже в DOM , –
Я пробовал без кавычек, и он по-прежнему не работает - и да, этот идентификатор уже находится в dom - я продолжаю получать ошибку: Uncaught TypeError: Невозможно установить свойство innerHTML нулевого – user1769203
Тогда либо вы ошибаетесь , и нет элемента с этим идентификатором, или этот код работает до того, как DOM будет готов. Как насчет [SSCCE] (http://sscce.org), который воспроизводит проблему? Есть много инструментов, которые помогут вам создать один из них: http://jsfiddle.net, http://jsbin.com, http://codepen.io и т. Д. –