我正在尝试制作一个通用函数,以删除所有调用它的函数。 我的代码如下:
function deletethis(n){
//n is unused in this shortened snippet
this.parentNode.removeChild(this);
}
<button onclick="deletethis(5)">Click to remove</button>
预期的行为:按钮被移除。
实际行为:错误无法读取未定义的属性'removeChild'
答案 0 :(得分:3)
正如詹姆斯在评论中指出的那样。 this
不会自动通过。试试这个
function deletethis(ele, n){
//n is unused in this shortened snippet
ele.parentNode.removeChild(ele);
}
<button onclick="deletethis(this, 5)">Click to remove</button>
答案 1 :(得分:1)
只需将ID传递给此函数,它就可以工作:)
function removeElement(elementId) {
// Removes an element from the document
var element = document.getElementById(elementId);
element.parentNode.removeChild(element);
}
答案 2 :(得分:1)
请勿使用嵌入式事件监听器,并且this
的设置应正确:
function deletethis(n){
this.parentNode.removeChild(this);
}
document.querySelector("button").addEventListener("click", deletethis);
<button>Click to remove</button>
答案 3 :(得分:0)
您还可以利用事件
def slidingame(Start,End,p,pmax,pos,mov,listmov)
if Start==End:
return True
else:
if p>pmax:
return False:
else:
jog="c"
if not possivel(pos,len(Mat),jog) or jog==mov:
jog="b"
if not possivel(pos,len(Mat),jog) or jog==mov:
jog="c"
if not possivel(pos,len(Mat),jog) or jog==mov:
jog="d"
if not possivel(pos,len(Mat),jog) or jog==mov:
return False
listamov.append(jog)
mov=jog
function deletethis(event) {
event.currentTarget.remove();
}