我有一个复杂的html结构。CSS 新手。想要将我的 xpath 更改为 css,因为在 IE 中可能会有一些性能影响
萤火虫的Xpath:.//*[@id='T_I:3']/span/a
我微调到://div[@id='Overview']/descendant::*[@id='T_I:3']/span/a
现在我需要相应的CSS。有没有可能?
首先,我不认为您的“微调”做得最好。一个元素id
在文档中应该是唯一的,因此通常被现代浏览器缓存(这意味着 id 查找是即时的)。id()
您可以通过使用该函数来帮助 XPath 引擎。
因此,XPath 表达式将是:(id('T_I:3')/span/a
是的,这是一个有效的 XPath 1.0 表达式)。
无论如何,要将其转换为 CSS,您可以使用:#T_I:3 > span > a
转换后的“微调”表达式将是:div#Overview #T_I:3 > span > a
,但说真的,您只需要一个id
选择。
编辑基于 Fréderic Hamidi 的好评:
我不认为
#T_I:3
是有效的(冒号会与伪类的开头混淆)。你必须想办法逃脱它。
事实证明,您还需要转义下划线。为此,请使用此 SO 问题中提到的技术:在 CSS 选择器中处理元素 ID 中的冒号。
最终的 CSS 选择器将是:
#T\5FI\3A3 > span > a