Как удалить элемент из div? - PullRequest
0 голосов
/ 29 мая 2011
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);
    }
}

Markup:

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

При нажатии на ярлык «щелкнуть» три ярлыка «один», «два», «три» успешно генерируются.

Когда я нажимаю метку «один», метки «четыре», «пять» и «шесть» генерируются успешно.

Когда я снова нажимаю на ярлык «один», три, четыре, пять ярлыков удаляются.

Но проблема в том, что когда я нажимаю ярлык «щелкнуть», а затем ярлык «один» ... теперь, когда я снова нажимаю «один», ярлык «один два три» удаляется один, но не «четыре пять шесть».

1 Ответ

0 голосов
/ 29 мая 2011

Элементы HTML-метки не имеют атрибута clicked , поэтому не рекомендуется давать им свойство clicked .

Метки предназначены для элементов управления формы, которыене иметь метки или подписи, такие как переключатели и флажки.Более подходящим элементом здесь была бы кнопка (либо кнопка, либо элемент кнопки типа ввода).

Атрибуты Id должны начинаться с буквы, они не могут быть всеми цифрами.

Браузеры будуттерпеть все вышеперечисленное, однако не стоит игнорировать спецификации, потому что может быть выпущен браузер, который будет соответствовать спецификации так, как этого не делает ваш код.

Я думаю, что ваша проблема в том, что ярлыки, созданные one выглядят так же, как те, которые созданы four .Если вы удалите four , нажав one , вы не сможете удалить созданные метки, пока не создадите его снова.

Используйте инспектор элементов, чтобы увидеть, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...