0

我想要每个文件夹旁边的 2 个图像。第一个图像,单击可以创建其子文件夹的图像。第二个图像,单击哪个文件夹本身及其所有子文件夹被删除

这是我的代码..它可以创建子文件夹但不能删除。我是 javascript 新手...帮帮我

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Javascript Directory code</title>

<style>
ul 
{
list-style-image:url('closed.gif');
}
</style>


</head>

<body>
<ul>
    <li onClick="myFunction.call(this, event)" id="root">Root</li>
</ul>


<script language="javascript" type="text/javascript">
function myFunction(e)
{
    e.stopPropagation();

    var id=prompt("Enter Folder id");
    if (id != '' && id != null)
    {
        var val=prompt("Enter Folder name");
    }
    if (id != '' && id != null && val !='' && val !=null) 
    {
        var ulnode=document.createElement("UL"); //new ul<br>
        var node=document.createElement("LI"); //new li<br>
        node.id = id;//set id of new li <br>
        node.onclick = myFunction;//set onclick event of new li<br> 

        var textnode=document.createTextNode(val);//li value<br>
        node.appendChild(textnode);// new li + li value<br>
        ulnode.appendChild(node);// ul + li value

        this.appendChild(ulnode);
    }
}
</script>

</body>
</html>
4

2 回答 2

0

如果您要使用 jQuery,您可以使用$('#id-of-folder').remove();in 函数将其从 DOM 中删除。

于 2013-11-14T08:00:31.350 回答
0

这可能有效:

        function myFunction(e)
        {
            e.stopPropagation();

            var id=prompt("Enter Folder id");
            if (id != '' && id != null)
            {
                var val=prompt("Enter Folder name");
            }
            if (id != '' && id != null && val !='' && val !=null) 
            {
                var ulnode=document.createElement("UL"); //new ul<br>
                var node=document.createElement("LI"); //new li<br>
                node.id = id;//set id of new li <br>
                node.onclick = myFunction;//set onclick event of new li<br>
                var anc=document.createElement("A"); //new li<br>
                anc.innerHTML = "---";
                anc.onclick = deleteNode;
                node.appendChild(anc);// new li + li value<br>);// new li + li value<br>

                var textnode=document.createTextNode(val);//li value<br>
                node.appendChild(textnode);// new li + li value<br>
                ulnode.appendChild(node);// ul + li value

                this.appendChild(ulnode);
            }
        }
        function deleteNode(e){
            e.stopPropagation();
            var caller = e.target || e.srcElement;
            var childToRemove = caller.parentNode.parentNode;
            childToRemove.parentNode.removeChild(childToRemove);
        }
于 2013-11-14T09:21:39.757 回答