почему когда прописываешь путь к элементу html, чтобы изменить его свойство например document.body.querySelector("#select").style.backgroundColor = "red";
нужно писать еще и .style, хотя явно в пути его нет и писать не background-color (как в CSS) а backgroundColor
JavaScript
вопрос по языку JS, описание внутри
Это не путь. Это методы и свойства объектов, на которых построен javascript, по цепочке вызываются
Объяснение тому что нужно писать backgroundColor, а не background-color весьма простое. Интерпритатор JS может принять дефис за минус. То есть посчитать что background-color означает что из некоей переменной background нужно вычесть переменную color.
Гугл → JavaScript Object, JavaScript DOM (Document Object Model)
_______________________
Оттуда можно убрать .body
А по style... элементы страницы работают как объект, соответственно и обращаются к ним методами объектов...
Если у нас есть какой-нибудь объект (допустим):
let document = {'id' : 'moo', 'class' : 'boo', 'src' : '...' }
А нам нужно пихнуть туда новый атрибут, это можно сделать так:
document.style.backgroundColor = "red";
И на выходе получим это:
document = {'id' : 'moo', 'class' : 'boo', 'src' : '...', style : { 'backgroundColor' : 'red' } }
Новый объект в объекте...
Можно и так, если есть железобетонная уверенность, что больше никакого стиля не будет нужно:
document.style = "background-color: red";
Что на выходе даст:
document = {'id' : 'moo', 'class' : 'boo', 'src' : '...', 'style' : 'background-color: red' }
т. е. уже не объект в объекте (куда можно добавить еще кучу атрибутов), а один атрибут с единственным значением... куда уже нельзя что-то новое добавить, а можно только переписать ( https://jsfiddle.net/OPTlMUS/vyhtp0a6/ - работает только последняя запись такого вида)
____________
По тире не знаю, но например в названиях переменных тоже не допускается этот символ... возможно чтобы не путалось с минусом...
_______________________
Оттуда можно убрать .body
А по style... элементы страницы работают как объект, соответственно и обращаются к ним методами объектов...
Если у нас есть какой-нибудь объект (допустим):
let document = {'id' : 'moo', 'class' : 'boo', 'src' : '...' }
А нам нужно пихнуть туда новый атрибут, это можно сделать так:
document.style.backgroundColor = "red";
И на выходе получим это:
document = {'id' : 'moo', 'class' : 'boo', 'src' : '...', style : { 'backgroundColor' : 'red' } }
Новый объект в объекте...
Можно и так, если есть железобетонная уверенность, что больше никакого стиля не будет нужно:
document.style = "background-color: red";
Что на выходе даст:
document = {'id' : 'moo', 'class' : 'boo', 'src' : '...', 'style' : 'background-color: red' }
т. е. уже не объект в объекте (куда можно добавить еще кучу атрибутов), а один атрибут с единственным значением... куда уже нельзя что-то новое добавить, а можно только переписать ( https://jsfiddle.net/OPTlMUS/vyhtp0a6/ - работает только последняя запись такого вида)
____________
По тире не знаю, но например в названиях переменных тоже не допускается этот символ... возможно чтобы не путалось с минусом...
все достаточно просто по свойству и названию backgroundColor
так захотели разработчики языка javascript и точка а остальные рассуждения это ни о чем
так захотели разработчики языка javascript и точка а остальные рассуждения это ни о чем
потому что вы находитесь не внутри css, а внутри кода javascript и должны использовать, таким образом, не атрибут css (background-color), а свойство backgroundColor, которое относится к объекту style, который, в свою очередь, является свойством вашего объекта-элемента.
Похожие вопросы
- Помогите определиться с выбором нового языка (JS(TS) vs Java)
- Вопросы по языку javascript
- Вопрос по JavaScript, смотрите описание
- Обьясните простым языком. Что делает RETURN в JS
- за сколько можно выучить язык программирования JS(JavaCript)?
- вопрос по JS. " простой ()";
- Js фреймворки, что полезного можно для себя найти?
- В чем цель фреймворков js web?
- [HTML/CSS/JS] Как сохранять изменённые в .js данные оффлайн-сервера локально?
- Почему jQuery методы популярнее js методов при общении с ДоМ?
наверное у вас мало знаний об именовании перененных в js