将变量添加到innerHTML元素

时间:2018-04-16 09:42:02

标签: javascript html

如何根据分配给eventDiv元素的counterID将下面的标签(在innerHTML元素中)中的文本更改为变量值?

function addRow() {
var eventDiv = document.createElement('div');

var counterID = counterID + 1;

eventDiv.setAttribute('id', counterID);

eventDiv.className = 'event_cont';

eventDiv.innerHTML =

'<div class="cont" onclick="addRow()">\
  <div class="dep_cont">\
    <div class="cont_label">\
     <label id="dep_cont_label">Departure</label>\
   </div>\
   <div class="cont_time">\
     <label>10:00 AM</label>\
   </div>\
   <div class="cont_icon">\
     <img src="icons/geo_loc.png" width="30px" height="30px" alt="" title=""/>\
   </div>\
 </div>\
 <div class="des_cont">\
   <div class="cont_label">\
     <label>Destination</label>\
   </div>\
   <div class="cont_time">\
     <label>10:00 AM</label>\
   </div>\
   <div class="cont_icon">\
     <img src="icons/end_RH.png" width="30px" height="30px" alt="" title=""/>\
   </div>\
 </div>\
</div>';

document.getElementById('tab_cont').appendChild(eventDiv);

document.getElementById('dep_cont_label').innerHTML = document.getElementById('dep_loc_input').value;

}

上述结果仅改变动态创建的第一个元素的标签文本

1 个答案:

答案 0 :(得分:0)

因为你为你创建的每个eventDiv使用相同的id。

首先,您应该在函数外部定义CounterID。此外,每次使用此函数创建div并将其附加到'tab_cont'时,您使用的是同一个id的'dep_cont_label','dep_loc_input'。 Id属性应该是唯一的。