Javascript 尝试删除元素时出错

Javascript 尝试删除元素时出错,javascript,Javascript,在下面的代码中,我需要编写删除类元素(devil)的函数,我编写了删除的函数,但出现了一些问题。谢谢你抽出时间 html代码 <html> <title>Test</title> <head> <link rel="stylesheet" type="text/css" href="style.css"> <script type="text/javascript" src="jav

在下面的代码中,我需要编写删除类元素(devil)的函数,我编写了删除的函数,但出现了一些问题。谢谢你抽出时间

html代码

<html>
    <title>Test</title>
    <head>
        <link rel="stylesheet" type="text/css" href="style.css">
        <script type="text/javascript" src="javascript.js"></script>
    </head>
    <body onload="draw()" onclick="shoot(event)">
            <div id="box" onmousemove="move(event)">
                <img id="aim"src="img/1.png" alt="">
            </div>
            <div id="borderleft"></div>
            <div id="info">     
            </div>

    </body>
</html>
body{
    margin: 0px;
}
img{
    position: absolute;
}

#box{
    background-color: #c0c0c0;
    width: 500px;
    height: 500px;
    cursor: none;
    z-index: 2;

}
#info{
    width: 524px;
    height: 30px;
    border: 1px;
    background-color: gray;
    position: absolute;
}

#borderleft{
    top:-25px;
    height: 525px;
    width: 25px;
    margin-left: 499px;
    background-color: gray;
    position: absolute;
}

#info, #border{

    z-index: 3;
}


.devil{
    z-index: 1;

}
和JavaScript代码

function move(e){
  if(e.clientX<500 &&  e.clientY<500){
   // alert(e.clientX+":"+e.clientY)
  //cautam divul info
  info=document.getElementById("info")

  //schimbam textul din terior
  //innerHTML-
  info.innerHTML=e.clientX+":"+e.clientY

  //miscam imaginea cu mouse
  //gasim imaginea dupa id
  aim=document.getElementById("aim");
  aim.style.left=(e.clientX-25)+"px";
  aim.style.top=(e.clientY-25)+"px";
  }
  //animatia se face mai bine in pozitia absolute
  //la absolute update se face doar la absolut div da la relative la toata pagina

}

//functia care va desena imagini
function draw(){
 // generam cantitate de obiecte
 N_objects=parseInt(Math.random()*10);

 // ciclu-adaugam imaginile in boxa
  //gasim box
  box=document.getElementById("box");

  for(i=0;i<N_objects;i++){
    //cream elemente noi
    o=document.createElement('img');
    //setam adresa
    o.src="img/2.png";
    //adaugam element in box
    box.appendChild(o);

          o.setAttribute("class","devil")
    //coordonate aleatoare
    o.style.left=parseInt(Math.random()*449)+'px';
    o.style.top=parseInt(Math.random()*449)+'px';
   }



}

 function shoot(e){
// alert(e.clientX+":"+e.clientY)
devil=document.querySelectorAll('.devil')
//verificam daca am nimerit in toate imaginile
for(i=0;i<devil.length;i++)
{
  if (e.clientX>parseInt(devil[i].style.left) )
    if(e.clientY>parseInt(devil[i].style.top) )
      if(e.clientX<parseInt(devil[i].style.left)+50 )
        if(e.clientY<parseInt(devil[i].style.top)+50 )
         {
          element=getElementByClass("devil");
          element.parentNode.removeChild(element)
         };
}
ID在HTML中被限制为唯一的(有些网页设计师似乎不这么认为。如果你找到了其中一个,就按一下)。类不是-因此任何查找特定类的方法都倾向于返回它们的集合

如果希望某个特定HTML元素只有一个,请设置其id而不是其类,然后使用
getElementById()
检索它


相反,如果您希望有多个特定元素类型(即“borderBox”或“GameForeign”),请使用类,并使用for循环迭代
getElementsByClassName
的结果,可能会对每个元素执行相同的操作。(如果您不熟悉for循环,您可能真的想学习JavaScript基础课程)

那么您是否在某处定义了方法
getElementByClass

JavaScript中没有getElementByClass,只有返回集合的

var element = document.getElementsByClassName("devil")[0];
element.parentNode.removeChild(element)

为什么不声明任何变量?危险的错误消息是什么?我不熟悉JavaScript,这就是为什么我没有变量,在这段代码中我没有看到我需要变量。错误:Uncaught ReferenceError:getElementByClass未定义,因为它是“元素”,所以我应该更改什么以工作:?)THx,您的代码行是有效的,但是您能告诉我[0]对我意味着什么吗?
getElementsByClassname
返回一组元素。括号符号[0]返回集合中的第一个元素。哦,但是在我单击的情况下,如何返回元素呢?
var element = document.getElementsByClassName("devil")[0];
element.parentNode.removeChild(element)