让我们假设 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 源代码。