2015-03-01 5 views
0
<html> 

<head> 

    <title> Random </title> 

    <script type="text/javascript" language="JavaScript"> 

     var typeFont = new Array ("cooper","Fixedsys","Edwardian Script ITC", "Gill Sans MT", "Kozuka Gothic Pro", "Lucida Sans", "Adobe Gothic Std", "Adobe Naskh", "Algerian","Arial Unicode MS"); 

     function font() 
     { 
      head6.style.fontFamily = typeFont[ Math.floor(Math.random * 10) ]; 
     } 
    </script> 
</head> 

<body> 

    <center> 
     <h1 onmouseover="font()" onmouseout="font" id="head6" > this is the text </h1> 
    </center> 

</body> 

Что случилось с массивом?

Я пытаюсь изменить шрифт каждый раз, когда мышь находится над или вне и эту функцию с head6.style.fontFamily = typeFont[3] но не с массивом.

ответ

3

Вы получаете NaN, так как Math.random является функцией и не может быть проанализирован на число.

Вы должны назвать FUNTION

Math.floor(Math.random() * 10) 

Обратите внимание, что это хорошо до тех пор, пока массив имеет ровно 10 индексов, но вы вообще хотите использовать длину массивов вместо 10

+0

' Math.random() * 10' будет корректно работать как 'Math.random()' возвращает значение из __0 (включительно) __ и __1 (исключение) __, а умножение его на '10' никогда не даст' 10'. поэтому 'Math.floor()' самого большого значения, возвращаемого 'Math.random() * 10', даст __9__. –

+0

Вот что я сказал, он работает до тех пор, пока массив имеет 10 индексов, если он имеет меньше или больше индексов, он не будет работать должным образом, вам придется изменить 10 на длину массивов, и именно поэтому вы часто просто видите 'Math.random() * array.length', а затем он обновляется при изменении массива. – adeneo

+0

Извините. Я понял это неправильно. : P –

Смежные вопросы