Я начинаю изучать некоторый JavaScript и понимать, что тире не разрешены при именовании идентификаторов. Однако в CSS распространено использовать тире для идентификаторов и классов.
Использование тире в CSS вмешиваются во взаимодействие JavaScript так или иначе? Например, если я должен был использовать getElementByID ("css-dash-name"). Я попробовал несколько примеров с помощью getElementByID с тире как название идентификатора отделения, и это работало, но я не уверен, если это так, во всем другом контексте.
Наличие тире и подчеркивает в идентификаторе (или имени класса, если вы выберете этим), который не будет никакого негативного эффекта, безопасно использовать их. Вы просто не могут сделать что-то вроде:
var some-element = document.getElementByID('css-dash-name');
Приведенный выше пример будет ошибка, потому что есть приборная панель в переменной, которую вы назначаете элемент.
Следующее было бы в порядке, хотя, поскольку переменная не содержит тире:
var someElement = document.getElementByID('css-dash-name');
, что ограничение имени существует только для самих переменных JavaScript.
Это только в тех случаях, когда вы можете получить доступ к элементам в качестве свойств, которые он имеет значение. Например, поля формы:
<form>
<input type="text" name="go-figure" />
<input type="button" value="Eat me!" onclick="...">
</form>
в событии OnClick вы не можете получить доступ к текстовому поле в качестве свойства, так как тире интерпретируется как минус в JavaScript:
onclick="this.form.go-figure.value='Ouch!';"
, но вы все еще можете получить доступ к ним, используя строку:
onclick="this.form['go-figure'].value='Ouch!';"
Прошедший способ - это значение. GetTetype (). ISSUBCLASSOFOF (тип контроля)) По сути, тип. ISSUBCLASSOFOFOFFOF сделать то, что вам нужно
-121--2332999-Идентификаторы могут содержать дефис :
- ID и Имя Токены должны начинаться с буквы ([A-ZA-Z]) И может сопровождаться любое количество букв, цифр ([0-9]), дефис («-« - »), подчеркивает (« _ »), двоеточия («: «) и периоды (« ».«).
И нет никакого ограничения при использовании идентификаторов в JavaScript, за исключением случаев, если вы хотите обратиться к элементам в глобальном объеме. Там нужно использовать:
window['css-dash-name']
Всякий раз, когда вам нужно решить свойство CSS в качестве имени переменной JavaScript, CameLCase является официальным способом.
element.style.backgroundColor = "#FFFFFF";
Вы никогда не будете в ситуации, чтобы связаться с идентификатором элемента как имена переменной. Это всегда будет в строке, поэтому
document.getElementById("my-id");
всегда будет работать.
Нет, это не вызывает проблему. Вы обращаетесь к идентификатору как строку (он заключен в кавычки), поэтому прибор не представляет проблему. Тем не менее, я бы предложил не использовать документ. GTELEMEDYBYID («CSS-Dash-name»), а вместо этого используют jQuery , так что вы можете сделать:
$("#css-dash-name");
, что намного яснее. Документация JQuery также довольно хорошая. Это лучший друг веб-разработчиков.
Другие ответы верны, насколько вы можете использовать дефисы, однако в корне вопроса вы должны рассмотреть идею не использовать тишины / дефисы в Ваша переменная / класс / идентификатор имена в целом. Это не стандартная практика, даже если она делает работу и требует тщательного кодирования, чтобы использовать его.
Рассмотрим использование либо PascalCase (все слова начинаются в капитале) или камера (первое слово начинается в нижнем регистре, следующие слова в верхнем регистре). Это две наиболее распространенные, принятые соглашения о именовании.
Различные ресурсы будут рекомендовать различные варианты между двумя (за исключением JavaScript, что в значительной степени всегда рекомендуется CameLCase). В конце концов, если вы согласуетесь в вашем подходе, это самая важная часть. Использование Camel или Pascal Case гарантирует, что вам не нужно беспокоиться о специальных доступах или кронштейнах в вашем коде.
Для соглашений о JavaScript попробуйте этот вопрос / обсуждение:
Условные соглашения на JavaScript
Вот еще одно великое обсуждение конвенций CSS, HTML-элементов и т. Д.:
Какой лучший способ назвать идентификаторы и классы в CSS и HTML?