Cho*_*hoy 15 javascript css naming-conventions
我开始学习一些javascript并理解在命名标识符时不允许破折号.但是,在CSS中,通常使用短划线表示ID和类.
在CSS中使用短划线是否会以某种方式干扰javascript交互?例如,如果我使用getElementByID("css-dash-name").我已经尝试使用带有破折号的getElementByID作为div ID的名称的一些示例,但它确实有效,但我不确定在所有其他上下文中是否都是这种情况.
Par*_*ots 33
在ID中使用破折号和下划线(或者如果您选择的那个类名称),不会产生任何负面影响,使用它们是安全的.你不能做这样的事情:
var some-element = document.getElementByID('css-dash-name');
Run Code Online (Sandbox Code Playgroud)
上面的示例将出错,因为您要为该元素分配的变量中有一个破折号.
以下情况可以,但由于变量不包含破折号:
var someElement = document.getElementByID('css-dash-name');
Run Code Online (Sandbox Code Playgroud)
该命名限制仅适用于javascript变量本身.
Guf*_*ffa 10
只有在您可以将元素作为属性访问它才能发挥作用的情况下.例如表单字段:
<form>
<input type="text" name="go-figure" />
<input type="button" value="Eat me!" onclick="...">
</form>
Run Code Online (Sandbox Code Playgroud)
在onclick事件中,您无法作为属性访问文本框,因为在Javascript中破折号被解释为减号:
onclick="this.form.go-figure.value='Ouch!';"
Run Code Online (Sandbox Code Playgroud)
但您仍然可以使用字符串访问它:
onclick="this.form['go-figure'].value='Ouch!';"
Run Code Online (Sandbox Code Playgroud)