JavaScript и CSS, с помощью тире

Я начинаю изучать некоторый JavaScript и понимать, что тире не разрешены при именовании идентификаторов. Однако в CSS распространено использовать тире для идентификаторов и классов.

Использование тире в CSS вмешиваются во взаимодействие JavaScript так или иначе? Например, если я должен был использовать getElementByID ("css-dash-name"). Я попробовал несколько примеров с помощью getElementByID с тире как название идентификатора отделения, и это работало, но я не уверен, если это так, во всем другом контексте.

15
задан Choy 22 January 2010 в 18:48
поделиться

6 ответов

Наличие тире и подчеркивает в идентификаторе (или имени класса, если вы выберете этим), который не будет никакого негативного эффекта, безопасно использовать их. Вы просто не могут сделать что-то вроде:

var some-element = document.getElementByID('css-dash-name');

Приведенный выше пример будет ошибка, потому что есть приборная панель в переменной, которую вы назначаете элемент.

Следующее было бы в порядке, хотя, поскольку переменная не содержит тире:

var someElement = document.getElementByID('css-dash-name');

, что ограничение имени существует только для самих переменных JavaScript.

33
ответ дан 1 December 2019 в 00:23
поделиться

Это только в тех случаях, когда вы можете получить доступ к элементам в качестве свойств, которые он имеет значение. Например, поля формы:

<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!';"
10
ответ дан 1 December 2019 в 00:23
поделиться

Прошедший способ - это значение. GetTetype (). ISSUBCLASSOFOF (тип контроля)) По сути, тип. ISSUBCLASSOFOFOFFOF сделать то, что вам нужно

-121--2332999-

Идентификаторы могут содержать дефис :

  • ID и Имя Токены должны начинаться с буквы ([A-ZA-Z]) И может сопровождаться любое количество букв, цифр ([0-9]), дефис («-« - »), подчеркивает (« _ »), двоеточия («: «) и периоды (« ».«).

И нет никакого ограничения при использовании идентификаторов в JavaScript, за исключением случаев, если вы хотите обратиться к элементам в глобальном объеме. Там нужно использовать:

window['css-dash-name']
1
ответ дан 1 December 2019 в 00:23
поделиться

Всякий раз, когда вам нужно решить свойство CSS в качестве имени переменной JavaScript, CameLCase является официальным способом.

element.style.backgroundColor = "#FFFFFF";

Вы никогда не будете в ситуации, чтобы связаться с идентификатором элемента как имена переменной. Это всегда будет в строке, поэтому

document.getElementById("my-id");

всегда будет работать.

3
ответ дан 1 December 2019 в 00:23
поделиться

Нет, это не вызывает проблему. Вы обращаетесь к идентификатору как строку (он заключен в кавычки), поэтому прибор не представляет проблему. Тем не менее, я бы предложил не использовать документ. GTELEMEDYBYID («CSS-Dash-name»), а вместо этого используют jQuery , так что вы можете сделать:

$("#css-dash-name");

, что намного яснее. Документация JQuery также довольно хорошая. Это лучший друг веб-разработчиков.

0
ответ дан 1 December 2019 в 00:23
поделиться

Другие ответы верны, насколько вы можете использовать дефисы, однако в корне вопроса вы должны рассмотреть идею не использовать тишины / дефисы в Ваша переменная / класс / идентификатор имена в целом. Это не стандартная практика, даже если она делает работу и требует тщательного кодирования, чтобы использовать его.

Рассмотрим использование либо PascalCase (все слова начинаются в капитале) или камера (первое слово начинается в нижнем регистре, следующие слова в верхнем регистре). Это две наиболее распространенные, принятые соглашения о именовании.

Различные ресурсы будут рекомендовать различные варианты между двумя (за исключением JavaScript, что в значительной степени всегда рекомендуется CameLCase). В конце концов, если вы согласуетесь в вашем подходе, это самая важная часть. Использование Camel или Pascal Case гарантирует, что вам не нужно беспокоиться о специальных доступах или кронштейнах в вашем коде.

Для соглашений о JavaScript попробуйте этот вопрос / обсуждение:

Условные соглашения на JavaScript

Вот еще одно великое обсуждение конвенций CSS, HTML-элементов и т. Д.:

Какой лучший способ назвать идентификаторы и классы в CSS и HTML?

0
ответ дан 1 December 2019 в 00:23
поделиться
Другие вопросы по тегам:

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