选择具有特定子层次结构的节点

时间:2012-11-19 09:42:13

标签: jquery

我想编写一个jQuery选择器,它匹配一组div节点(下面的粗线):

  • 所有div个节点,其中class = .link
    • 谁包含div个节点,其中class = .entry
      • 谁包含p个节点,其中class = .title
        • 谁包含a节点,其中href以http://i.imgur.com/
        • 开头

(点击下图查看完整尺寸。要测试内容,请访问http://reddit.com并使用Firebug(加载jQuery)): Firebug screenshot containing part of Reddits DOM

2 个答案:

答案 0 :(得分:2)

您可以使用has方法和属性starts with选择器。

$('div.link div.entry').has('p.title:has(a[href^="http://i.imgur.com/"])');

<子>编辑:

filter方法:

var $entries = $('div.link').filter(function() {
    return $('p.title:has(a[href^="http://i.imgur.com/"])', this).length
})

答案 1 :(得分:1)

$('div.link').has('div.entry:has(p.title:has(a[href^="http://i.imgur.com/"]))');

编辑:实际上:has不是:contains(只是看到未定义的答案)