删除名为onclick

时间:2019-06-10 18:16:43

标签: javascript

我正在尝试制作一个通用函数,以删除所有调用它的函数。 我的代码如下:

function deletethis(n){
//n is unused in this shortened snippet
this.parentNode.removeChild(this);
}
<button onclick="deletethis(5)">Click to remove</button>

预期的行为:按钮被移除。

实际行为:错误无法读取未定义的属性'removeChild'

4 个答案:

答案 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();
}