2016-08-30 3 views
0

Я пытаюсь запрограммировать кнопку, которая случайно выбирает цвет из массива цветов и выбирает между этими четырьмя значениями, а цвет будет передан новому элементу.Выбор случайного цвета из массива

Это классы, которые определены в css. Это не работает должным образом, хотя я не вижу проблемы с тем, что я делаю.

<script> 
    var colorArray = [ '.st1', '.st2', '.st3', '.st4']; 
    var randomColor = Math.floor(Math.random()*colorArray.length); 
    </script> 

     <label> 
     Class: <input type="text" id="new-class" value="randomColor"> 
     </label> 

    <button type="button" onclick="addObject()"> 
    Make Ball 
    </button> 

Может ли кто-нибудь увидеть, что я делаю неправильно?

+2

Вы не можете использовать переменные JavaScript как значения HTML атрибутов, как это. – Phylogenesis

+0

Вы пытаетесь сделать свой шар случайным? - значение не будет зависеть от javascript в ваших вводах ... –

+0

это не исправит вашу проблему, но это следующий шаг в то, что вы хотите ... Я думаю, http://www.w3schools.com/ jsref/prop_hidden_value.asp –

ответ

1

Чтобы использовать переменную javascript как значение HTML, вы должны установить ее в javascript. Таким образом, чтобы установить атрибут value, сделать это следующим образом: И вам нужно обернуть код в функции, которые вы установили в onClick

<script> 
    function addObject(){  
     var colorArray = ['.st1', '.st2', '.st3', '.st4']; 
     var randomColor = Math.floor(Math.random() * colorArray.length); 
     console.log(colorArray[randomColor]); 
     document.getElementById("new-class").className = colorArray[randomColor]; 
    } 
</script> 
+2

Я прочитал вопрос как желающий изменить класс элемента, а не значение. –

+0

Я просто показал ему, как получить значение переменной в том месте, где он пытался ее использовать. В html это атрибут 'value'. вы можете установить любой атрибут, который вы хотите –

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