代码之家  ›  专栏  ›  技术社区  ›  donohoe

带所有h标记的javascript中的css选择器

  •  6
  • donohoe  · 技术社区  · 16 年前

    使用原型JS库,我想选择所有子链接元素( 标签)无论其父级是否: H1 , H2 , H3 , H4 H5 (等)用一个简单的 CSS选择器规则 (与其他JS相反,如循环等)。

    因此,要做到这一点很简单,但也有很长的路要走:

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

    我想我在找一个不存在的外卡财产,比如H*。

    也许上面的例子是可行的,但我希望有一种更简单、更简洁和有效的方法来实现这一点。

    感谢小费。

    4 回复  |  直到 14 年前
        1
  •  4
  •   donohoe    16 年前

    根据Fabien M_)Nager对原始问题的评论,除了我已经拥有的,似乎没有一个简单的CSS选择器可以使用。

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

    如果我想对它进行编程,或者清空jquery(这对我来说不是一个选项),还有其他的选项,我专门寻找一个css规则。

    感谢所有想帮忙的人。

        2
  •  3
  •   Josh Stodola    16 年前

    使用jQuery:

    $(":header a")
    
        3
  •  2
  •   Tony Heflin    16 年前

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

    标题 匹配所有头元素,如h1、h2、h3等。

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

    $(":header").css({ background:'#CCC', color:'blue' });
    
        4
  •  1
  •   robjmills    16 年前

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

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

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