如何从div中删除元素?

时间:2011-05-29 09:32:45

标签: javascript dom

var aa = 0;
var arr = new Array("one", "two", "three");
var arr1 = new Array("four", "five", "six");

function cl(me) {
    me.clicked = !me.clicked;
    var id = me.id;
    if (me.clicked) {
        if (id == 1000) aa = arr;
        if (id == "one" || id == "two" || id == "three") aa = arr1;
        var s = document.getElementById("sample");
        var d = document.createElement("div");
        d.id = me.id + 1;
        s.appendChild(d);
        for (i = 0; i < aa.length; i++) {
            var l = document.createElement("label");
            l.innerHTML = aa[i];
            l.id = aa[i];
            l.onclick = function (){cl(this)};
            d.appendChild(l);
        }
    } else {
        var child = document.getElementById(me.id + 1);
        var parent = document.getElementById("sample");
        parent.removeChild(child);
    }
}

标记:

<label id="1000" onclick="cl(this)">click</label><br><div id="sample"></div>

单击标签“click”时,会成功生成三个标签“one”“two”“three”。

当我点击标签“一个”时,标签“四个”“五个”“六个”成功生成。

当我再次点击标签时,“one”“three four five”标签被删除。

但问题是当我点击标签“点击”然后标记“一个”时...现在当我再次点击“一个”时,标签“一二三”被单独删除但不是“四五六”。

1 个答案:

答案 0 :(得分:0)

HTML标签元素没有点击的属性,因此为他们提供点击的属性不是一个好主意。

标签适用于没有标签或标题的表单控件,例如单选按钮和复选框。这里更合适的元素是按钮(按钮或输入类型按钮元素)。

Id属性必须以字母开头,它们不能是所有数字。

浏览器可以容忍上述所有内容,但忽略规范并不是一个好主意,因为浏览器可能会以您的代码所不具备的方式发布。

我认为您的问题是 one 创建的标签看起来就像 four 创建的标签。如果您通过单击一个删除,则在再次创建之前无法删除它创建的标签。

使用元素检查器查看发生的情况。