让我们假设 name == foo
。如果我理解正确,您正在比较您的 CSS 和 JavaScript 代码并注意到这些标识符之间的相似性:
.textbox
.textbox-foo
.textbox_foo
所以你想知道:是foo
某种参数或伪类.textbox
与你的 CSS 中的类相结合吗?这里有什么关系?
答:没有。 textbox
, textbox-foo
, 和textbox_foo
都是完全不同的 HTML/CSS 类名。连字符和下划线在 CSS 中作为标识符的一部分是完全有效的,所以这三个类就像它们被命名为abc
、def
和一样不同ghi
。
所以没有变量被传递给你的 CSS。你是对的,CSS 没有变量。您所看到的只是名称相似的不同类,但就浏览器而言是不相关的。
不过, jQuery 调用$(".textbox_" + name)
是 JavaScript,您可以在 JavaScript 中传递变量。使用 jQuery,此代码查找具有类 name 的 HTML 元素序列textbox_foo
,其中foo
是您传递给textbox
函数的任何名称。它不会触及 classtextbox
或的元素textbox-foo
,除非它们也有textbox_foo
该类。
jsFiddle 演示
至于 JavaScripttextbox
函数,如果不看它的其余部分,就无法知道它做了什么。我的猜测是,基于我见过的其他 jQuery 插件,它会根据name
您提供的参数来操作页面中新的或现有的文本框。它可能会向它们添加样式和行为,并在此过程中动态添加带有类textbox-foo
和/或textbox_foo
. 相似的名称可能是为了帮助您理解生成的 HTML 源代码。