我有一个函数,该函数使用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/

10-12 22:32
查看更多