Я новичок javascript, пытающийся использовать .setAttribute, array и GetElementsByTagName в одной функции.Javascript: как вызвать значение в массиве для использования в GetElementsByTagName с помощью setAttribute?
Я хочу сделать так, чтобы цвет шрифта h1 менялся в зависимости от того, какое значение вводится. Каждое значение (0-9) соответствует определенному значению в массиве. Затем, используя несколько операторов if (или других альтернативных способов), я надеюсь использовать .setAttribute для изменения свойства тега h1.
Я продолжаю либо получать «Невозможно прочитать свойство» setAttribute «неопределенного», либо «undefined не является функцией», независимо от того, как я настраиваю свой код. Иногда я вообще не вижу никаких консольных ошибок, но мой код не работает.
function change() {
var y = document.getElementsByTagName('h1').innerHTML;
var color = ["Grey", "Blue", "Green", "Red", "Pink", "Yellow", "Orange", "Indigo", "Violet", "Black"];
var x = parseInt(document.getElementById('cn').value);
\t for (var i = 0; i < color.length; i++) {
\t var bgcolor = color[i]; \t \t \t
\t \t \t if (x == 1) \t {
\t \t y.setAttribute("style", "color: blue;");
\t \t
}
\t \t else if (bgcolor > 9){
\t \t \t alert('Please enter a number from 0 to 9'); \t
\t \t \t \t
\t \t \t }
\t }
\t \t \t \t \t \t \t \t \t \t
}
<h1>Header</h1>
<p>
Input a number from 0 to 9:<br>
<input type="text" id="cn"> <br>
<input type="button" value="Change" onclick="change();">
</p>
</div>
Спасибо заранее.
'getElementsByTagName' возвращает список узлов, не один узел. Поэтому вы не можете называть 'setAttribute' на нем напрямую, а только на его элементах. –
(1) 'document.getElementsByTagName ('h1'). InnerHTML' >>' document.getElementsByTagName ('h1') [0] '(почему innerHTML ??); (2) 'document.getElementById ('colornumber')' >> 'document.getElementById ('cn')' (почему colornumber ??) (3) После того, как атрибут стиля установлен, вам необходимо его сбросить. – Abhitalks
@abhitalks мой плохой извините, я забыл изменить его>. < – Yuu