为了账号安全,请及时绑定邮箱和手机立即绑定

选择器h3:nth-​​child(1):contains('a')为什么不起作用?

选择器h3:nth-​​child(1):contains('a')为什么不起作用?

哈士奇WWW 2019-12-06 10:29:33
我检查这个选择器:h3:nth-child(1):contains('a') 选择器不起作用?我在firefinder中检查了此内容,但没有返回任何内容(没有信息显示零元素)然后检查:h3:nth-child(1)并返回h3,所以选择器几乎是不错的选择,但是this(h3的文本为'a')的文本出错。
查看完整描述

3 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

:contains() 不是原本是CSS3选择器(感谢TJ Crowder的链接),但它没有做到,很可能是因为它的工作方式往往会导致严重的性能和过度选择问题。例如,如果元素E匹配:contains()给定的字符串参数,则其所有祖先也将匹配;将其与通用选择器一起使用会导致某些样式属性带来意想不到的结果,而且浏览器速度很慢。


没有其他CSS选择器可达到的目的:contains()。因此,您必须找到其他方法,通过修改HTML甚至使用jQuery的方法:contains()来实现所需的效果:


如果h3元素

是其父元素的第一个子元素

且其文本包含字母“ a” ,则选择该元素。


对于jQuery和Selenium RC用户: :contains()在jQuery使用的Sizzle选择器引擎中实现,该引擎也在Selenium RC(但不是 Selenium WebDriver)中使用。它按照CSS3规范这个已有十多年的修订版中的描述进行工作,但是同样,由于该规范对它的描述方式,您需要谨慎使用它,否则可能会导致意外选择。


最后,h3:nth-child(1)可以将替换为h3:first-child,因为CSS2选择器具有更好的浏览器支持。


查看完整回答
反对 回复 2019-12-06
?
千万里不及你

TA贡献1784条经验 获得超9个赞

如果您尝试使用:contains(a)查找锚标记(而不是字母A),则可以使用:


h3:nth-child(1) a

要么


h3:first-child a


查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 556 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信