带有所有H标签的Javascript中的CSS选择器

时间:2009-10-22 19:57:48

标签: javascript prototypejs css-selectors

使用Prototype JS库,我想选择所有子链接元素( A 标记),无论其父级是否为: H1 H2 H3 H4 H5 (等),带有简单的 CSS选择器规则(而不是进一步的JS,像循环等)。

这样做的简单但很长的方法是:

$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

我想我正在寻找一个不存在的外卡属性,比如h *。

也许上面的例子是要走的路,但我希望有一种更简单,更简洁,更有效的方法来实现这一目标。

提示赞赏。

4 个答案:

答案 0 :(得分:4)

根据FabienMénager对原始问题的评论,看起来没有一个简单的CSS选择器,我可以使用除了我已经使用的东西。

$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

虽然还有其他选择,如果我想对它进行编程,或者清空JQuery(这对我来说不是一个选项),我特意寻找CSS规则。

感谢所有试图提供帮助的人。

答案 1 :(得分:3)

使用jQuery:

$(":header a")

答案 2 :(得分:2)

http://docs.jquery.com/Selectors/header说:

:标题匹配所有标题元素,例如h1,h2,h3等。

为页面上的所有标题添加背景和文本颜色。

$(":header").css({ background:'#CCC', color:'blue' });

答案 3 :(得分:1)

从原型开发者那里得到了答案。这些是最好的,也是唯一的解决方案,现在至少:

$$('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a, h6 > a')
$('page').select('h1 > a, h2 > a, h3 > a, h4 > a, h5 > a')

然而,Prototype的下一个版本将允许您选择一个选择器引擎,默认为Sizzle:header伪选择器实际上是Sizzle的一部分,因此将在未来版本的原型中可用(只要您选择sizzle作为您的选择器引擎)。我想之前没有包括它,因为它不是任何规范的一部分。