Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS等同于XPath插入式分组和索引?_Xpath_Css_Jquery Selectors_Css Selectors - Fatal编程技术网

CSS等同于XPath插入式分组和索引?

CSS等同于XPath插入式分组和索引?,xpath,css,jquery-selectors,css-selectors,Xpath,Css,Jquery Selectors,Css Selectors,这个问题旨在通过Selenium/Web驱动程序进行测试,但也适用于一般的Web应用程序/开发 XPath有一个非常好的特性,即对给定的XPath进行分组,并结合索引来表示“为给定XPath返回的所有/多个元素提供元素N,指定为“(//someXpath)[N]”,不带引号 我想知道CSS中是否有一个可翻译的等价物。如果不是通过标准CSS,那么Sizzle/jQuery如何?如果不存在,如果将来将这种东西添加为CSS标准会很好。类似于“(someCssSelector):第n种类型(n)” 除此

这个问题旨在通过Selenium/Web驱动程序进行测试,但也适用于一般的Web应用程序/开发

XPath有一个非常好的特性,即对给定的XPath进行分组,并结合索引来表示“为给定XPath返回的所有/多个元素提供元素N,指定为“(//someXpath)[N]”,不带引号

我想知道CSS中是否有一个可翻译的等价物。如果不是通过标准CSS,那么Sizzle/jQuery如何?如果不存在,如果将来将这种东西添加为CSS标准会很好。类似于“(someCssSelector):第n种类型(n)”


除此之外,XPath和CSS的另一种选择是更具体地描述DOM树,向树上移动以获得标识元素的唯一性(而不是(someShorterSimplerXpath)[n])。

您可以访问jquery集,如数组:
$('selector')[n]

对于相对的
/
xpath,可以使用
children()
,因此对于像
//selector/foo
这样的xpath,可以使用
$('selector')。children('foo')
。对于相对的
//code>xpath,可以使用
查找()
:对于
//selector//foo
使用
$('selector')。查找('foo'))
。对于
您可以使用
parent()
:对于
//选择器/。
使用
$('selector')。parent()


使用CSS时,虽然没有父选择器,但有一个类型为
n的伪类()。因此,您可以执行
selector:n的类型(n)
您可以访问jquery集,如数组:
$('selector')[n]

对于相对的
/
xpath,可以使用
children()
,因此对于像
//selector/foo
这样的xpath,可以使用
$('selector')。children('foo')
。对于相对的
//code>xpath,可以使用
查找()
:对于
//selector//foo
使用
$('selector')。查找('foo'))
。对于
您可以使用
parent()
:对于
//选择器/。
使用
$('selector')。parent()


在CSS中,虽然没有父选择器,但是有一个
nth类型的
伪类()。因此,您可以执行
selector:nth类型(n)
:nth-of-type()
可能不会执行您认为它会执行的操作(它是CSS3中最容易被误解的选择器之一)。小心。@BoltClock您的意思是因为它只对同级进行操作?还因为它只对元素类型(header、p、div、li…)进行操作,而没有其他属性。
:nth-of-type()
可能不会像您认为的那样进行操作(它是CSS3中最容易被误解的选择器之一).小心。@BoltClock您的意思是因为它只对同级进行操作?还因为它只对元素类型(header、p、div、li…)进行操作,而没有其他属性。目前还不清楚CSS4中的伪类是允许一个复杂选择器列表,还是只允许一个简单选择器列表(有关术语,请参阅)。如果它允许使用复杂选择器,那么它很可能是您所渴望的未来标准:)例如,XPath表达式
(//foo/bar[@name])[n]
可以转换为以下CSS4选择器:
:n个匹配(n个foo>bar[name])
,其中
foo>bar[name]
是一个复杂选择器(遵循2011 WD中显示的语法)。但是如果
:nth-match()
不接受复杂的选择器,那么您将无法在很长一段时间内使用纯CSS执行此操作。谢谢,这是很有见地的信息。希望:nth-match()将支持复杂选择器。刚刚注意到,您可以在帖子中通过javascript获取css计数。第n个匹配功能可能有助于迭代匹配,与Selenium的getXpathCount和XPath的括号索引方法相同。目前尚不清楚CSS4中的伪类是否允许复杂选择器列表或only一个简单选择器列表(有关术语,请参阅)。如果它允许使用复杂选择器,那么它很可能是您渴望的未来标准:)例如,XPath表达式
(//foo/bar[@name])[n]
可以转换为以下CSS4选择器:
:n个匹配(n个foo>bar[name])
,其中
foo>bar[name]
是一个复杂的选择器(遵循2011 WD中显示的语法)。但是如果
:nth-match()
不接受复杂选择器,那么在很长一段时间内,您将无法使用纯CSS执行此操作。谢谢,这是很有见地的信息。希望:nth-match()将支持复杂选择器。刚刚注意到,您可以在帖子中通过javascript获取css计数。第n个匹配功能可能有助于迭代匹配,与Selenium的getXpathCount和XPath的括号索引方法相同。