【问题标题】:How does one select a tag with no child tags?如何选择没有子标签的标签?
【发布时间】:2013-08-30 10:33:27
【问题描述】:

我熟悉:empty 选择器来选择一个不包含标签没有文本的元素,但这对我来说太远了。我想知道是否有办法选择不包含子标签,但可能包含一些文本的标签。

出于我的目的,使用仅适用于最新版 Google Chrome 的 CSS 是可以接受的(因为这是为 Chrome 扩展而设计的)。

【问题讨论】:

  • 有趣。所以你会寻找<div>spam</div><li>hello</li> 而不是<li>i need some <em>emphasis</em></li>
  • 是的,这就是一个例子。
  • 没有完整的 CSS 解决方案。见Select element without a child
  • 这个问题看起来像是在问一些类似的问题,但又完全不同。该用户对抓取文本感兴趣,而我想完全忽略文本的存在。我不在乎文字是否存在,我只想知道里面是否有标签。

标签: css


【解决方案1】:

您可以通过 CSS 实现此目的的唯一方法是使用 :not 选择器排除可能适合作为该特定父级的子级的每个标签。

但是,使用 JQuery,您可以使用以下代码(例如)来做到这一点:

if ( $('#myParent').children().length == 0 ) {
     // do something
}

【讨论】:

  • 实际上是否有一种语法(Chrome 可以理解)“排除每个可能适合作为特定父级的子级的标签”?谷歌发现我有很多关于潜在父选择器语法的讨论,但我不确定它们中的任何一个是否实际实现。
  • 唯一的标准实现方式是通过 :not 选择器,但您需要一点复杂的和平才能到达那里,所以我建议您尝试使用 javascript 解决方案。
  • 我要问的不是排除。我了解:not 的工作原理。它排除了孩子而不是父母。你能举例说明你的意思吗?因为我认为这种语法还不存在。
  • 我明白了。但我看到的唯一其他选择是通过 javascript,上面的示例是 JQuery 示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-14
  • 2020-10-29
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多