Uncaught ReferenceError: writeIn не определяется при изменении (<anonymous>: 5: 4) при <anonymous>: 7: 1 - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь написать функцию для изменения цвета текста, но возникает ошибка. Мне интересно, как это исправить.

function change() {
var colour = prompt("What's your favourite colour?");
a = colour.value
id = document.querySelector('.tab ');
id.style.backgoundColor = writeIn(a) ;
}
change();
console.log(a);

Я отредактировал код, как показано ниже, ошибка исчезла, но значение все еще не определено, и в тексте не происходит никаких изменений.

var changing = function change() {
var cls = document.querySelector('.tab ');
var colour = prompt("What's your favourite colour?");
var a = colour.value;
cls.style.backgoundColor = a ;
alert(a);
}
changing();
console.log(a);

Ответы [ 4 ]

1 голос
/ 15 февраля 2020

В вашем коде вы нигде не объявили функцию writeIn (a) . Так что это причина ошибки.

Просто прокомментируйте, что строка будет работать, или объявите функцию writeIn.

0 голосов
/ 17 февраля 2020

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

function change(class_selector) {
 var cls = document.querySelector(class_selector);
 var colour = prompt("What's your favourite colour?");

if(colour){
 var a = document.querySelector(class_selector).innerHTML= colour;
}else{
 var a = 'blue';
}
cls.style.color = a ;
alert(a);
}
var changing = change('.s-btn__primary');
alert(colour);
console.log(a);

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

0 голосов
/ 15 февраля 2020

Я думаю, вы хотите что-то вроде приведенного ниже кода:

let favouriteColor;

function change() {
  favouriteColor = prompt("What's your favourite colour?");
  cls = document.querySelector('.tab ');
  cls.style.backgroundColor = favouriteColor;
  alert(favouriteColor);
}
change();
console.log(favouriteColor);
0 голосов
/ 15 февраля 2020

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

Во-вторых, является ли глобальная переменная a? А идентификатор? Используйте не менее var, но лучше let или const для объявления переменных. Как я понимаю, id локально, а a глобально (из родительской области). Здесь вы можете прочитать о let , const и var .

А о вашем ответе: функции writeIn нет. Вы должны просто назначить:

id.style.backgoundColor = a;
...