好的,这可能很简单,我只是不知道该怎么做。我有一个主要功能,它正在接收“id”。这个id是唯一的,我想将它传递给另一个为我计数并将该计数返回到innerHtml span标记的函数。
原因是因为我可以同时打开其中的5个,但是它们将具有相同的span id名称“editCommentsCounter”...我希望它们像“editCommentsCounter-id”
function editCommentToggle( id )
{
theRow = document.getElementById("id"+id);
//user = theRow.cells[0].innerHTML;
//date = theRow.cells[1].innerHTML;
com = theRow.cells[2].innerText ;
comLength = theRow.cells[2].innerText.length ;
idx = 2;
maxlength = 250;
count = maxlength - comLength;
// Comment field
cell = theRow.cells[idx];
while( cell.childNodes.length > 0 ) cell.removeChild(cell.childNodes[0]);
spanTag = document.createElement("span");
spanTag.innerHTML = "You have <strong><span id='editCommentsCounter'>"+count+"</span></strong> characters left.<br/>";
cell.appendChild(spanTag);
element = document.createElement("textarea");
element.id="commentsTextArea-"+id;
element.rows="3";
element.value = com;
element.style.width = "400px";
element.maxLength = "250";
element.onfocus = element.onkeydown = element.onkeyup = function(){return characterCounterEdit('editCommentsCounter', maxlength, this);};
cell.appendChild(element);
}
基本上我想采取:
spanTag.innerHTML = "You have <strong><span id='editCommentsCounter'>"+count+"</span></strong> characters left.<br/>";
并将其改为`span id ='editCommentsCounter-'+ id
所以当我这样称呼时:
element.onfocus = element.onkeydown = element.onkeyup = function(){return characterCounterEdit('editCommentsCounter', maxlength, this);};
我在上面用editCommentsCounter调用了上面附带id的
看看我在说什么?
答案 0 :(得分:1)
使用:
document.getElementById("editCommentsCounter-" + id).innerHTML = someVal;
你有很多,但似乎你正在尝试编写innerHTML val。如果没有,请在评论中告诉我更多,我可以提出更多建议。
我看到你想要动态构建一个新的跨度,然后填充内容。有一点令人费解,一开始你引用元素和concat“id”+ id。不得不考虑这个问题,以便对过快的反应道歉;只是看着你的最终结果。
设置唯一ID:
var spanTag = document.createElement("span");
spanTag.id = 'editCommentsCounter-' + id;
spanTag.innerHTML = 'You have ...' + count + '...';
document.body.appendChild(spanTag);
我希望这有帮助!