Создание узла элемента, установка его атрибутов и добавление элемента? - PullRequest
1 голос
/ 09 июня 2019

Мне дают указание создать узел элемента для элемента ссылки и установить для его атрибута rel значение "styleSheet", его атрибута id - "fancySheet" и его * 1005.* href атрибут «na_style_num.css» (где num - значение переменной styleNum).

Затем он хочет, чтобы я добавил элемент стиля fancySheet в заголовок документа.

Мне кажется, что я действительно близко или очень далеко отсюда.Вот что я попытался без удачи:

na_styler.js:

window.addEventListener("load", setStyles);

function setStyles() {
   var styleNum = randInt(5);
   var styleNum = document.createElement("link");
   styleNum.setAttribute("rel", "stylesheet");
   styleNum.setAttribute("id", "fancySheet");
   styleNum.setAttribute("href", "na_style_" + styleNum + .css);
   document.head.appendChild(styleNum);
}

Я получил несколько ошибок, но проблема в том, что они написаны в форме, которую я не могу на самом делеПонимаю.Например:

"Traceback (последний вызов был последним): файл" nt-test-3ed2ebdf.py ", строка 14, в assert (link.get_attribute ('id') == 'fancySheet)'),' Для атрибута id должно быть установлено значение "fancySheet". Actual: "'+ str (link.get_attribute (' id ')) +'" 'AssertionError: Для атрибута id должно быть установлено значение "fancySheet". Фактически:" ""

Ответы [ 2 ]

1 голос
/ 09 июня 2019

В строке styleNum.setAttribute("href", "na_style_" + styleNum + .css); заключите .css в кавычки, потому что это строка, а не имя переменной.

styleNum.setAttribute("href", "na_style_" + styleNum + '.css');

window.addEventListener("load", setStyles);

function setStyles() {
   var styleNum = randInt(5);
   var styleEle = document.createElement("link");
   styleEle.setAttribute("rel", "stylesheet");
   styleEle.setAttribute("id", "fancySheet");
   styleEle.setAttribute("href", "na_style_" + styleNum + ".css");
   document.head.appendChild(styleNum);
}
0 голосов
/ 09 июня 2019

Вы использовали одно и то же имя для двух переменных.Поскольку они объявлены с var, это не приведет к ошибке.Второй перезапишет первый.

Просто измените имя одной из переменных

Также оберните .css в ""

window.addEventListener("load", setStyles);

function setStyles() {
   var styleNum = randInt(5);
   var styleElm = document.createElement("link");
   styleElm.setAttribute("rel", "stylesheet");
   styleElm.setAttribute("id", "fancySheet");
   styleElm.setAttribute("href", "na_style_" + styleNum + ".css");
   document.head.appendChild(styleElm);
}
...