1

divの背景色を緑のマウスオーバーイベントに変更したいのですが、なぜこのエラーが発生し続ける のかわかりませんTypeError:undefinedのプロパティ'style'を読み取れません

これが私のJSコードです:

//JavaScriptドキュメント

s1= new String()
var myArray = new Array();
var div_id=0;

myArray[0] = "Donald Duck";
myArray[1] = "Winnie Pooh";
myArray[2] = "Komal Waseem";
myArray[3] = "Hockey";
myArray[4] = "Basketball";
myArray[5] = "Shooting";
myArray[6] = "Mickey Mouse";


function test(){
s1 = document.getElementById('filter').value;
var myRegex = new RegExp((s1),"ig");
arraysearch(myRegex);
}



function arraysearch(myRegex){ 
var flag=0;

for(b=1; b<=div_id; b++)
    {
   var d = document.getElementById('lc');
   var olddiv= document.getElementById("div" + b);
   if(olddiv){
   d.removeChild(olddiv);}
   }

for(i=0; i<myArray.length; i++)
{ 
if (myArray[i].match(myRegex)){ 
      div_id++;
      flag=1;
      document.getElementById('lc').style.visibility='visible';
      var element = document.createElement("div");
      element.setAttribute('id', "div" + div_id);
      element.appendChild(document.createTextNode(myArray[i]));
      document.getElementById('lc').appendChild(element);

      var x =document.getElementsByTagName("div")
      for(t=0; t<x.length; t++)
      {
      //alert(t);
      if(x[t]){
      x[t].onmouseover = function(){
      x[t].style.backgroundColor='green';
       }
       }
}
}
    if (flag ==0){
    document.getElementById('lc').style.visibility='hidden'; }
}

    }
4

2 に答える 2

2

たとえば、を緑色のオンホバーにしたい場合は、divdiv idがmydivである場合、cssでこのようなことを行うことができます。

 #mydiv{
     background-color:red;
}

#mydiv:hover{
    background-color:green;
}
于 2012-09-28T11:53:11.990 に答える
2

JavaScriptを変更することもできますが、これは機能するはずです。

x[t].onmouseover = function() {
   this.style.backgroundColor='green';
}

元のJavaScriptが機能しない理由tは、マウスオーバーするまでに変更されているためx[t]、イベントハンドラー内が機能しないためです。

または、CSSを使用することもできます。

div.myDiv:hover {
    background-color: green;
}
于 2012-09-28T11:46:08.050 に答える