我的问题是删除项目(动态添加的项目)不会在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等特定位置添加元素。 我们可以点击项目删除项目。
答案 0 :(得分:0)
我没有在Internet Explorer 6上进行测试的实例,但很可能是这一行,这导致了问题:
newTD.setAttribute("onclick","javascript:removenode(this);" );
它在Internet Explorer 6中不起作用。您需要执行以下操作:
newTD.onclick = function() { removeNode(this); };
或
newTD.onclick = new Function("removenode(this)");
有关详细信息,请参阅此article。另外,作为附注,您可能希望使用像jQuery这样的库,它已经处理了这些类型的跨浏览器问题。