首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除Javascript中的元素?

如何删除Javascript中的元素?
EN

Stack Overflow用户
提问于 2022-08-14 17:23:14
回答 3查看 80关注 0票数 0

我试图做一个汽车添加系统,但我希望系统删除一个元素,当删除按钮是clicked.But,它不删除element.What是问题吗?

我试图做一个汽车添加系统,但我希望系统删除一个元素,当删除按钮是clicked.But,它不删除element.What是问题吗?

代码语言:javascript
复制
#todo-list-input-text{
    font-family: sans-serif;
    font-size: 40px;
    position: absolute;
    left: 30px;
}


#todo-list-input{
    width: 300px;
    height: 30px;
    border-radius: 15px;
    position: absolute;
    top: 100px;
    left: 15px;
    font-family: sans-serif;
    font-size: 30px;
}


#todo-list-button{
    background-color: black;
    color: white;
    position: absolute;
    top: 100px;
    width: 100px;
    height: 35px;
    left: 330px;
    border-radius: 15px;
}

#todo-list{
    width: 700px;
    height: 1200px;
    border: 2px solid #d3d3d3;
    position: absolute;
    top: 200px;
}

#todo-list-todo{
    font-family: sans-serif;
    font-size: 40px;
    letter-spacing: 2px;
    position: absolute;
    left: 20px;
}
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>Page Title</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link rel='stylesheet' type='text/css' media='screen' href='todo_list.css'>
    <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>

    <h1 id="todo-list-input-text">To-do list</h1>

    <input id="todo-list-input" type="text">

    <input id="todo-list-button" onclick="Addtothelist();" type="button" value="Add to the list">

    <div id="todo-list"></div>

    <script>

        function Addtothelist(){

            var todo_list_value=$("#todo-list-input").val();

            var todo_list_div=document.createElement("div");

            todo_list_div.style.position="relative";

            todo_list_div.style.width="100px";

            todo_list_div.style.height="100px";

            todo_list_div.style.top="190px";

            todo_list_div.style.width="700px";

            todo_list_div.style.border="2px solid #d3d3d3";

            var todo_list_1="<h1 id='todo-list-todo'>Todo-activity</h1> <button onclick='Delete();' id='Delete_button'>Delete</button>";

            var Delete_button=document.getElementById("Delete_button");

            

            var todo_list_2=todo_list_1.replace("Todo-activity",todo_list_value);

            todo_list_div.innerHTML=todo_list_2;

            function Delete(){

                todo_list_div.remove();
            }
            
            document.body.appendChild(todo_list_div);
        }
    </script>
</body>
</html>

EN

回答 3

Stack Overflow用户

发布于 2022-08-14 17:33:10

Delete函数的内部定义Addtothelist函数。因此,当单击delete按钮时,Delete函数将不再在作用域中,因此您将看到“defined”错误。

定义全局范围中的每个函数,以及两个函数之间共享的任何变量。

代码语言:javascript
复制
#todo-list-input-text{
    font-family: sans-serif;
    font-size: 40px;
    position: absolute;
    left: 30px;
}


#todo-list-input{
    width: 300px;
    height: 30px;
    border-radius: 15px;
    position: absolute;
    top: 100px;
    left: 15px;
    font-family: sans-serif;
    font-size: 30px;
}


#todo-list-button{
    background-color: black;
    color: white;
    position: absolute;
    top: 100px;
    width: 100px;
    height: 35px;
    left: 330px;
    border-radius: 15px;
}

#todo-list{
    width: 700px;
    height: 1200px;
    border: 2px solid #d3d3d3;
    position: absolute;
    top: 200px;
}

#todo-list-todo{
    font-family: sans-serif;
    font-size: 40px;
    letter-spacing: 2px;
    position: absolute;
    left: 20px;
}
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>Page Title</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link rel='stylesheet' type='text/css' media='screen' href='todo_list.css'>
    <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>

    <h1 id="todo-list-input-text">To-do list</h1>

    <input id="todo-list-input" type="text">

    <input id="todo-list-button" onclick="Addtothelist();" type="button" value="Add to the list">

    <div id="todo-list"></div>

    <script>

        var todo_list_div;

        function Addtothelist(){

            var todo_list_value=$("#todo-list-input").val();

            todo_list_div=document.createElement("div");

            todo_list_div.style.position="relative";

            todo_list_div.style.width="100px";

            todo_list_div.style.height="100px";

            todo_list_div.style.top="190px";

            todo_list_div.style.width="700px";

            todo_list_div.style.border="2px solid #d3d3d3";

            var todo_list_1="<h1 id='todo-list-todo'>Todo-activity</h1> <button onclick='Delete();' id='Delete_button'>Delete</button>";

            var Delete_button=document.getElementById("Delete_button");

            var todo_list_2=todo_list_1.replace("Todo-activity",todo_list_value);

            todo_list_div.innerHTML=todo_list_2;
            
            document.body.appendChild(todo_list_div);
        }
        
        function Delete(){
          todo_list_div.remove();
        }
    </script>
</body>
</html>

票数 1
EN

Stack Overflow用户

发布于 2022-08-14 17:48:30

只需一行解决方案:-

只需将整个Delete函数放在delete按钮的onclick属性中,因为它只是一行,如下所示:

代码语言:javascript
复制
// somewhere in your code, find this var and replace it properly
var todo_list_1 = "...<button onclick='this.parentNode.remove()' id='Delete_button'>Delete</button>";

为什么删除按钮不能工作

因为您没有全局声明Delete函数,而是在另一个函数中声明

票数 0
EN

Stack Overflow用户

发布于 2022-08-14 18:12:18

您正在使用jQuery。意思是:“少写,多做!”

不需要冗长的document.createElement()和属性定义表达式。使用jQuery-way来实现它:

代码语言:javascript
复制
const $body=$("body")
 .on("click","button.delbtn",function(){ // this: clicked button
   $(this).closest("div").remove()})
 .on("click","[type=button]",ev=>
   $body.append('<div style="position:relative;width:100px;height:100px;top:190px;width:700px;border:2px solid #d3d3d3"><h1 id="todo-list-todo">'+$("#todo-list-input").val()+'</h1><button class="delbtn">Delete</button></div>'))
代码语言:javascript
复制
#todo-list-input-text{
    font-family: sans-serif;
    font-size: 40px;
    position: absolute;
    left: 30px;
}

#todo-list-input{
    width: 300px;
    height: 30px;
    border-radius: 15px;
    position: absolute;
    top: 100px;
    left: 15px;
    font-family: sans-serif;
    font-size: 30px;
}

#todo-list-button{
    background-color: black;
    color: white;
    position: absolute;
    top: 100px;
    width: 100px;
    height: 35px;
    left: 330px;
    border-radius: 15px;
}

#todo-list{
    width: 700px;
    height: 1200px;
    border: 2px solid #d3d3d3;
    position: absolute;
    top: 200px;
}

#todo-list-todo{
    font-family: sans-serif;
    font-size: 40px;
    letter-spacing: 2px;
    position: absolute;
    left: 20px;
}
代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.2/css/all.min.css" integrity="sha512-1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMfw5BC1A==" crossorigin="anonymous" referrerpolicy="no-referrer" />
 <h1 id="todo-list-input-text">To-do list</h1>
 <input id="todo-list-input" type="text">
 <input id="todo-list-button" type="button" value="Add to the list">
 <div id="todo-list"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73353656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档