Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 向div添加元素和按钮时,每个按钮如何删除自身?_Javascript_Html_Dom - Fatal编程技术网

Javascript 向div添加元素和按钮时,每个按钮如何删除自身?

Javascript 向div添加元素和按钮时,每个按钮如何删除自身?,javascript,html,dom,Javascript,Html,Dom,我有一个脚本,可以向div添加段落。这些段落中有一些文本和一个删除按钮。这个删除按钮应该能够删除包含文本的段落,所以可以删除整个段落,但它不能 var elementCounter2=0; 函数加法器2{ elementCounter2++; var p=document.createElementp; var node=document.createTextNodeThis是元素编号+元素计数器2; p、 setAttributeid,p+元素计数器2; p、 追加子节点; p、 inner

我有一个脚本,可以向div添加段落。这些段落中有一些文本和一个删除按钮。这个删除按钮应该能够删除包含文本的段落,所以可以删除整个段落,但它不能

var elementCounter2=0; 函数加法器2{ elementCounter2++; var p=document.createElementp; var node=document.createTextNodeThis是元素编号+元素计数器2; p、 setAttributeid,p+元素计数器2; p、 追加子节点; p、 innerHTML+='删除此元素'; document.getElementByIdelements2.appendChildp; } 函数deleteElement2{ var p=document.getElementByIdp+elementCounter2; var btn=document.getElementByIddel+elementCounter2; //按钮查看自己的id并查找相应的p id,然后删除该段落。 } .边缘的{ 边框:实心1px黑色; 利润率:10px; 填充:10px; } 这是第二部分

您可以在这里添加元素

您也可以删除这些,但不同

添加一个元素。
您可以在每个新创建的段落上设置一个事件侦听器,删除内联代码,而忽略保存在此处的计数器以显示代码工作

var elementCounter2=0; 函数加法器2{ elementCounter2++; var p=document.createElementp; var node=document.createTextNodeThis是元素编号+元素计数器2; p、 setAttributeid,p+元素计数器2; p、 追加子节点; p、 innerHTML+='删除此元素'; document.getElementByIdelements2.appendChildp; var el=document.getElementByIdp+elementCounter2; el.addEventListenerclick,deleteElement2,false; } 函数deleteElement2{ 这个。移除 } .边缘的{ 边框:实心1px黑色; 利润率:10px; 填充:10px; } 这是第二部分

您可以在这里添加元素

您也可以删除这些,但不同

添加一个元素。
您可以在每个新创建的段落上设置一个事件侦听器,删除内联代码,而忽略保存在此处的计数器以显示代码工作

var elementCounter2=0; 函数加法器2{ elementCounter2++; var p=document.createElementp; var node=document.createTextNodeThis是元素编号+元素计数器2; p、 setAttributeid,p+元素计数器2; p、 追加子节点; p、 innerHTML+='删除此元素'; document.getElementByIdelements2.appendChildp; var el=document.getElementByIdp+elementCounter2; el.addEventListenerclick,deleteElement2,false; } 函数deleteElement2{ 这个。移除 } .边缘的{ 边框:实心1px黑色; 利润率:10px; 填充:10px; } 这是第二部分

您可以在这里添加元素

您也可以删除这些,但不同

添加一个元素。 这应该行得通

var elementCounter2=0; 函数加法器2{ elementCounter2++; var p=document.createElementp; var node=document.createTextNodeThis是元素编号+元素计数器2; p、 setAttributeid,p+元素计数器2; p、 追加子节点; p、 innerHTML+='删除此元素'; document.getElementByIdelements2.appendChildp; } 函数deleteElement2caller{ //调用者=按钮 document.getElementByIddel+caller.id.substr3.parentNode.remove; } .边缘的{ 边框:实心1px黑色; 利润率:10px; 填充:10px; } 这是第二部分

您可以在这里添加元素

您也可以删除这些,但不同

添加一个元素。 这应该行得通

var elementCounter2=0; 函数加法器2{ elementCounter2++; var p=document.createElementp; var node=document.createTextNodeThis是元素编号+元素计数器2; p、 setAttributeid,p+元素计数器2; p、 追加子节点; p、 innerHTML+='删除此元素'; document.getElementByIdelements2.appendChildp; } 函数deleteElement2caller{ //调用者=按钮 document.getElementByIddel+caller.id.substr3.parentNode.remove; } .边缘的{ 边框:实心1px黑色; 利润率:10px; 填充:10px; } 这是第二部分

您可以在这里添加元素

您也可以删除这些,但不同

添加一个元素。
一种简单的方法是将段落作为父元素引用,而不是担心如何直接引用它

    function deleteElement2() {
        this.parentElement.remove();
    }
但是,将按钮添加为

p、 innerHTML+='删除此元素'

这不是一个好的实践,因为您正在Javascript中添加HTML元素,而您只能在Javascript中进行此操作


要了解更多关于原始问题或如何在JS中执行此操作的信息,请参考YouTube上CS50W讲座给出的类似示例:

一个简单的方法是将段落作为父元素引用,而不是担心如何直接引用它

    function deleteElement2() {
        this.parentElement.remove();
    }
但是,将按钮添加为

p、 innerHTML+='删除此元素'

这不是一个好的做法 因为您是在Javascript中添加HTML元素,所以您只能在Javascript中进行此操作


要了解更多关于您的原始问题或如何在JS中执行此操作的信息,请参考YouTube上CS50W讲座给出的一个非常类似的示例:

执行此操作的多种方法;使用现有代码,使用onclick=deletelement2this;并使用deleteElement2btn函数获取按钮。或者这样做:有多种方法;使用现有代码,使用onclick=deletelement2this;并使用deleteElement2btn函数获取按钮。或者这样做:谢谢你的解决方案。虽然我现在只做了两周的javascript,但我还没有完全接触到eventlisteners,所以我会把它写下来供以后使用。谢谢你提供了这个解决方案。虽然我现在只做了两周的javascript,但我还没有完全接触到eventlisteners,所以我会在后面写下来。谢谢你提供了这个解决方案,如果我搜索和思考的时间比我长的话,这可能就是我最有可能解决这个问题的方法。谢谢你提供了这个解决方案,如果我搜索和思考的时间比我长的话,这可能就是我最有可能解决问题的方法。谢谢你与我分享这个创建者,我知道我在代码中添加按钮的方式是错误的,但是document.getElementById.innerHTML正是我的学校教我如何用javascript更改内容的方式。我现在正努力学习真正的语言两周,所以请原谅我的初学者错误:我两天前才开始学习DOM。谢谢你与我分享这个创建者,我知道我在代码中添加按钮的方式是错误的,但document.getElementById.innerHTML正是我的学校教我如何使用javascript更改内容的方式。我现在正努力学习真正的语言两个星期,所以请原谅我的初学者这样的错误:我两天前才开始学习DOM。