【问题标题】:Select only the innermost div with specific text [duplicate]仅选择具有特定文本的最里面的 div [重复]
【发布时间】:2014-07-16 22:13:43
【问题描述】:

当嵌套的 div 标签的数量未知时,我只需要选择包含特定文本的最里面的 div 标签。

给定:

<div>
    <div>
        <div>Some Text</div>
    </div>
</div>

选择器应该只包含最里面的 div 标签(和文本)。使用 $("div:contains('Some Text')") 会返回所有三个 div,因为它们都包含文本。

【问题讨论】:

  • 可能类似于:$('div:not(:has(div))');?
  • 您想通过文本选择元素还是仅通过“级别”选择元素?从你的描述看不清楚。
  • @Joe - 不起作用,因为我需要指定文本。
  • @markm247:只需添加:contains('Some Text')
  • @FelixKling - 我提到我想选择包含文本的 div,但为了清楚起见,我已经编辑了问题。

标签: jquery


【解决方案1】:

使用:contains() 查找包含您的文本的div,然后使用:not(:has(div)) 过滤:

$('div:contains(Some Text):not(:has(div))')

演示:

http://jsfiddle.net/8eGLJ/1/

【讨论】:

  • 我也做了同样的事情,但发现最好在里面添加另一个 ':contains(Some Text)'
  • $('div:contains(Some Text):last') 也可以。
猜你喜欢
  • 1970-01-01
  • 2020-01-21
  • 2015-10-16
  • 1970-01-01
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多