【问题标题】:Prototype Selector Problem IE 8原型选择器问题 IE 8
【发布时间】:2011-05-04 17:36:54
【问题描述】:

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

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

我的想法是我有各种以“validate”开头的元素的类名,即“validate-numeric”或“validate-url”。所以,我想在类属性中获取任何带有 validate 字样的元素。

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

【问题讨论】:

标签: javascript internet-explorer-8 prototypejs


【解决方案1】:

如果您还没有弄清楚,这里有一个替代方案。对所有元素进行分类:

<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; }

【讨论】:

    猜你喜欢
    • 2012-04-13
    • 1970-01-01
    • 2012-01-20
    • 2011-04-11
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多