首页 > web前端 > css教程 > 为什么 `h3:nth-child(1):contains(\'a\')` 不选择第一个包含 \'a\' 的?

为什么 `h3:nth-child(1):contains(\'a\')` 不选择第一个包含 \'a\' 的?

Susan Sarandon
发布: 2024-12-10 08:56:13
原创
773 人浏览过

Why Doesn't `h3:nth-child(1):contains('a')` Select the First  Containing

为什么 h3:nth-child(1):contains('a') 失败?

尝试选择第一个h3 元素包含文本“a”,正在使用选择器 h3:nth-child(1):contains('a')。但是,此选择器不会产生所需的结果。

说明:

CSS3 选择器 :contains() 从未作为标准实现,因此在主要浏览器。此选择器旨在匹配包含特定文本的元素,但其实现会由于匹配该元素的所有祖先而导致性能问题。

替代解决方案:

由于 :contains() 不可用,另一种方法是必需:

  • 修改 HTML: 重新排列 HTML 结构,将所需的 h3 元素放置在不同的位置。
  • 使用 jQuery: jQuery 提供了自己的 :contains() 选择器,可以用作如下:
$("h3:first").filter(function() {
  return $(this).text().indexOf("a") >= 0;
});
登录后复制

注意事项:

  • 对于 jQuery 和 Selenium RC,支持 :contains() 但可能会导致意外选择,因为匹配祖先。
  • 可以使用 CSS2 选择器 h3:first-child h3:nth-child(1) 以获得更好的浏览器支持。

以上是为什么 `h3:nth-child(1):contains(\'a\')` 不选择第一个包含 \'a\' 的?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板