У меня есть небольшая вещь, которую я должен сделать. Мне нужно дать класс CSS для div, и это должно изменить внутренности div. Но моя кнопка не выполняет onclick или что-то в этом роде. Я не получаю ошибок в консоли.
function Naampie(){
document.getElementById("ja").className += " pasta-di-mama";
}
Naampie();.pasta-di-mama{
color: red;
font-size: 2em;
}<!DOCTYPE html>
<html>
<head>
<title>Javascript Stuff</title>
</head>
<body>
<div id = "ja">
<p>Spaghetti</p>
<p>Macaroni</p>
<p>MI</p>
<p>Pasta Kip</p>
<p>Pasta Salade</p>
</div>
<button onclick = "Naampie()">Functie</button>
<!--<script src = "script.js" type = "text/javascript"></script>-->
</body>
</html>Кто-нибудь знает, почему это не работает?
Naampie(); уже вызывается, поэтому div должен иметь под загрузкой класс pasta-di-mama...
Может быть, это просто ошибка копирования и вставки, но вы пропустили "." перед именем класса в вашем CSS.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать classList.add("className")
function Naampie(){
document.getElementById("ja").classList.add("pasta-di-mama");
}
Naampie();.pasta-di-mama{
color: red;
font-size: 2em;
}<!DOCTYPE html>
<html>
<head>
<title>Javascript Shit</title>
</head>
<body>
<div id = "ja">
<p>Spaghetti</p>
<p>Macaroni</p>
<p>MI</p>
<p>Pasta Kip</p>
<p>Pasta Salade</p>
</div>
<button onclick = "Naampie()">Functie</button>
</body>
<script src = "script.js" type = "text/javascript"></script>
</html>Это решение выглядит хорошо, но я предлагаю не выполнять Naampie сразу после объявления, так как мне кажется, что вы пытаетесь добавить класс после нажатия кнопки.
Попробуйте добавить класс
function Naampie(){
document.getElementById("ja").classList.add("pasta-di-mama");
}
Вам не хватает . в объявлении CSS для таргетинга на класс. Я бы также рекомендовал использовать classList.add вместо добавления к className.
function Naampie() {
document.getElementById("ja").classList.add("pasta-di-mama");
}
Naampie();.pasta-di-mama {
color: red;
font-size: 2em;
}<div id = "ja">
<p>Spaghetti</p>
<p>Macaroni</p>
<p>MI</p>
<p>Pasta Kip</p>
<p>Pasta Salade</p>
</div>
<button onclick = "Naampie()">Functie</button>также добавьте тег script ПЕРЕД закрывающим тегом body, т.е. ВНУТРИ тела
Попробуйте classList.add(). Вы также забыли поставить перед классом точку (.) в CSS. Я также рекомендую не использовать встроенный обработчик событий:
function Naampie(){
document.getElementById("ja").classList.add("pasta-di-mama");
}
document.getElementById('myBtn').addEventListener('click', Naampie);.pasta-di-mama{
color: red;
font-size: 2em;
}<div id = "ja">
<p>Spaghetti</p>
<p>Macaroni</p>
<p>MI</p>
<p>Pasta Kip</p>
<p>Pasta Salade</p>
</div>
<button id = "myBtn">Functie</button>Другой способ сделать это... добавить прослушиватель событий в btn.
document.getElementById("myBtn").addEventListener("click", function() {
document.getElementById("ja").classList.add("pasta-di-mama");
});.pasta-di-mama {
color: red;
font-size: 2em;
}<div id = "ja">
<p>Spaghetti</p>
<p>Macaroni</p>
<p>MI</p>
<p>Pasta Kip</p>
<p>Pasta Salade</p>
</div>
<button id = "myBtn">Functie</button>
Вы вызываете функцию «Naampie()», когда ваш js загружается. Может ли быть так, что класс существует с самого начала, и вы думаете, что он не добавляется, потому что он уже существует?