xtala
@xtala
Постигает Дзен

Как должен правильно работать setAttribute?

Разбираюсь потихоньку с JS по книге Фримена и Робсона. Дошел до момента когда с помощью метода setAttribute присваивается новый класс элементу ранее выбранному по ID. Казалось бы примитивнейший код ни в какую не хочет работать. По задумке страница полностью загружается, затем вызывается функция init которая меняет содержимое абзаца "Я здесь главный" на "Нет я" и присваивает ему класс с красным цветом текста.
Содержимое код меняет, а вот с присваиванием атрибутов класса (или самого класса) какие то проблемы.
Кто подскажет, как правильно должен работать setAttribute?
Не пойму то ли лыжи не едут, то ли в книге ошибка...
Сорцы
HTML
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
   <body>
<p id="main"> Я здесь главный! </p>
<script src="changeHTML.js"></script>   
  </body>
</html>


CSS
.redtext {color: red;}

JS
function init (){
var text = document.getElementById("main");
text.innerHTML = "Нет, я!";
text.setAttribute = ("class", "redtext");
}
window.onload = init;

JSFiddle
  • Вопрос задан
  • 515 просмотров
Решения вопроса 2
Negezor
@Negezor
Senior Shaurma Developer
Нужно вот так:
function init (){
  var text = document.getElementById("main");
  text.innerHTML = "Нет, я!";
  text.setAttribute("class", "redtext");
}
window.onload = init;
Ответ написан
leni_m
@leni_m
ЧупаКобрус
text.setAttribute("class", "redtext");
внутри тега любые атрибуты меняет.
Для наглядности произвольные три:
<p class="" id="" style="">...</p>

text.setAttribute("class", "...");
text.setAttribute("id", "...");
text.setAttribute("style", "...");
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
iamd503
@iamd503
Верстальщик
Чтобы получить class используйте className
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы