我有一个函数,该函数使用toArabic函数的输出创建一个新的div。
function createListItem(value) {
var iDiv = document.createElement('div');
iDiv.id = 'block';
iDiv.className = 'block' + i;
var classString = iDiv.className.toString();
document.getElementsByTagName('body')[0].appendChild(iDiv);
iDiv.innerHTML = toArabic(value).toString() + " " + "<span class='remove' onclick=' removeDummy(" + classString + "); '>x</span>";
i++;
}
它使用ID块号创建一个div,因此第一个是block0,第二个是block1,依此类推。
我想添加一个按钮“删除”,单击“ x”将删除创建的div。我能够在removeDummy函数中提醒div名称,但它仍然给出错误“ block0 is nod defined”。
删除功能:
function removeDummy(value) {
var elem = document.getElementById(value);
elem.parentNode.removeChild(elem);
return false;
}
该函数一直工作到我给它赋值为止,但是它将删除最旧的div,因此我决定给它一个div id以删除恰好被引用的div。
是什么导致此错误?为什么该功能可以与警报一起使用,而不能与删除一起使用?
我该如何解决这个问题?
提前致谢!
最佳答案
几个小错误:
第一:您创建的每个div都具有相同的ID,但具有不同的className。这应该相反。将ID视为您的个人ID,将类名称视为作业。两个人不能具有相同的ID,但他们可以具有相同的工作。
iDiv.id = 'block' + i;
iDiv.className = 'block';
第二:目前,您的删除按钮如下所示:
<span class='remove' onclick=' removeDummy(block1); '>x</span>
如果单击它,它将尝试调用
removeDummy
并将变量block1
传递给它。如果您之前没有定义block1,那么它将包含具有相同想法的元素。您需要将此值封装在'
-s中"<span class='remove' onclick=' removeDummy('block" + i + "'); '>x</span>"
关于javascript - 函数给出错误“div id”未定义。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38501674/