原型选择器问题IE 8

时间:2010-11-03 20:33:21

标签: javascript internet-explorer-8 prototypejs

我有一个使用以下CSS选择器(Prototype 1.6.1)的验证类:

$$('*[class*=validate]')

我的想法是,对于以'validate'开头的元素,我有各种类名,即'validate-numeric'或'validate-url'。所以,我想在类属性中使用单词validate来获取任何元素。

它适用于任何其他浏览器,包括IE 6& 7.在IE 8中,它似乎没有选择适当的元素。我尝试在IE的开发人员工具中进行一些调试,但是控制台,尽管如此,只为数组和对象输出{...}。有什么我想念的吗?是的,它是一个CSS3选择器,但我认为它仍然在Prototype和6& 7都使用它。

1 个答案:

答案 0 :(得分:0)

如果你还没弄明白,这里有另一种选择。将所有元素分类为:

<div class="validate numeric">foo</div>
<div class="validate url">bar</div>
<div class="validate email">world</div>

然后这肯定会在IE8中运行:

$$('.validate');

我猜你正在为表单验证编写一些代码,这些都是可能发生的错误。我的架构的CSS将是

.validate { color: red }
.numeric { margin: 1px }
.url { margin: 2px; }
.email { padding: 3px; }

虽然您的CSS架构不是模块化的 - 因此随着您添加越来越多的错误类型而难以维护。

.validate_numeric,
.validate_url,
.validate_email {
 color: red;
}

.validate_numeric { margin: 1px }
.validate_url { margin: 2px; }
.validate_email { padding: 3px; }