javascript - 带有原型(prototype)的多个 CSS 选择器

标签 javascript prototypejs css-selectors sizzle

我正在重构一些目前看起来像这样的代码:

$$('#wrapper > div').each(function(e){ 
    if((e.id!='header') && (e.id!='footer') && (e.id!='content')){
        // various other stuff here
    }
});

我想切换初始选择器并检查 ID 到一行,大致如下:

$$('#wrapper > div[id!=header]', '#wrapper > div[id!=content]', '#wrapper > div[id!=footer]')

尽管多个选择器不起作用,但每个选择器本身都可以正常工作。不确定这是语法问题还是Prototype docs说这应该有效,但是一旦我添加额外的选择器,那么就没有任何作用。

要确认此操作有效:

$$('#wrapper > div[id!=header]')

这有效:

$$('#wrapper > div[id!=footer]')

但这无法选择其中之一(不会引发错误)

$$('#wrapper > div[id!=header]', '#wrapper > div[id!=footer]')

最佳答案

这两个代码片段执行完全不同的操作。与顶部片段等效的内容应该是这样的:

$$('#wrapper > div[id!=header][id!=footer][id!=content]')

您的选择器将选择所有具有 id 的 div,因为那些“footer”将在“not header”下被选择。

关于javascript - 带有原型(prototype)的多个 CSS 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584195/

相关文章:

javascript - 使用 Prototype 的 Class.create 定义私有(private)/ protected 属性和方法

java - JAVA(Selenium)中的for循环通过cssSelector查找Element

javascript - 在 vuex 操作中使用 fetch 方法

javascript - "value"参数不能是数字

javascript - 如何编写包含脚本标签的父级内容

JSF 页面中的 CSS 选择器不起作用

css - 标签 + 输入相邻的 CSS 选择器不起作用

javascript - jqGrid 4.0 bindKeys 方法使用上下箭头键移动整个网格

javascript - prototypejs观察IE7

javascript - 如何在前一个 ajax 请求完成后启动 ajax 请求?