удаление динамически добавленных элементов DOM в IE6 - PullRequest
0 голосов
/ 09 августа 2010

Моя проблема в том, что УДАЛИТЬ ПУНКТ (элемент, который был добавлен динамически) не удаляется нажатием в IE6.

JavaScript:

var TDCount = 3;
var i=0;
function insertTD(){
        var possition=document.getElementById('elmnt_pos').value;
        if(possition=="")
        {
                    possition='a';
                    alert('Enter a number!!!');
         }
        if(isNaN(possition))
        {
          alert('Enter a number!!!');
          document.getElementById('elmnt_pos').value='';
        }else{
 var newTD = document.createElement("li");
        var newid='li'+TDCount++;
           newTD.setAttribute("id", newid);
           newTD.setAttribute("onclick","javascript:removenode(this);" );   
 var newText = document.createTextNode(i+"New fruit " + (possition++));
 newTD.appendChild(newText);

 var trElm = document.getElementById("menu");
 var refTD = trElm.getElementsByTagName("li").item(possition-2);
 trElm.insertBefore(newTD,refTD);
        i++;
        }

}
function removenode(th)
{
answer = confirm("Do you really want to Remove Element "+th.id + " ? ")
        if (answer !=0)
        {
        document.getElementById('menu').removeChild(document.getElementById(th.id));
        }

}

HTML

<ul id="menu">
    <li id="li0" onclick="javascript:removenode(this);">apple</li>
    <li id="li1" onclick="javascript:removenode(this);">Banana</li>
    <li id="li2" onclick="javascript:removenode(this);">Jackfruit</li>
</ul>
<form name="justfrm">
    <input type="text" value="Enter the position" name="pos1" id="elmnt_pos" />
    <input type="button" value="click" onclick="javascript:insertTD()"/>
</form>

«Ввести позицию» означает добавить элемент в определенную позицию, например 2,3,5 и т. Д. Мы можем удалить элемент, нажав на элемент.

1 Ответ

0 голосов
/ 10 августа 2010

У меня нет экземпляра для проверки в Internet Explorer 6, но, скорее всего, именно эта строка вызывает проблему:

newTD.setAttribute("onclick","javascript:removenode(this);" );

Это не работает в Internet Explorer 6. Вам нужно будет сделать что-то вроде:

newTD.onclick = function() { removeNode(this); };

или

newTD.onclick = new Function("removenode(this)");

См. статью для получения дополнительной информации. Кроме того, в качестве примечания вы можете использовать библиотеку, подобную jQuery , которая уже обрабатывает такие типы кросс-браузерных проблем.

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