如何使用 CSS 2.0 select 或 select 通过在其父元素上设置的属性来 select 一个元素?
How can I select an element by an attribute set on its parent using CSS 2.0 selectors?
我的 QWebView
中有一个这样的 HTML
<div class='a' id='root'>
<div id='x'>...</div>
<p> ...
<p>
...
<div id='x2'>...</div>
<div>
<a href='go/xxxx'>go</a>
</div>
</div>
我如何select a
?我试过这个 selectores:
div[id='root'].a
div[id='root'] + a
但是没有用。代码:
QWebFrame* frame = webView->page()->mainFrame();
QWebElement button = frame->documentElement().findFirst("div[id='root'].a");
assert(!button.isNull()); // gets executed
你可以switch to using XPath 2.0 in Qt有更多的表达自由,但是你需要把你的HTML处理成XML。
要解决,请为 a
添加 descendant selector1。即,将此 div[id='root'].a
更改为:
div[id=root].a a
作为替代方案,如果 Qt 中存在错误,请尝试:
div[id=root][class=a] a
或者(可能更宽一些):
div[id~=root][class~=a] a
最后两个只是备选方案,以防由于某种原因对您的代码的原始修复(添加 a
后代选择器)不起作用。
上面的代码片段不使用带引号的字符串,这是可选的。
1 在 ) 中看到添加 a
,在我原来的(错误的)解决方案之后。感谢他:)
您的 select 或正在 select 使用 ID='root' 和 class='a' 的 div。如果你想 select 那个 div 里面的标签,你需要让你的 select 或者:
div[id='root'].a a
在select的末尾附加'a'or告诉jquery到selectdiv的a里面。
我的 QWebView
<div class='a' id='root'>
<div id='x'>...</div>
<p> ...
<p>
...
<div id='x2'>...</div>
<div>
<a href='go/xxxx'>go</a>
</div>
</div>
我如何select a
?我试过这个 selectores:
div[id='root'].a
div[id='root'] + a
但是没有用。代码:
QWebFrame* frame = webView->page()->mainFrame();
QWebElement button = frame->documentElement().findFirst("div[id='root'].a");
assert(!button.isNull()); // gets executed
你可以switch to using XPath 2.0 in Qt有更多的表达自由,但是你需要把你的HTML处理成XML。
要解决,请为 a
添加 descendant selector1。即,将此 div[id='root'].a
更改为:
div[id=root].a a
作为替代方案,如果 Qt 中存在错误,请尝试:
div[id=root][class=a] a
或者(可能更宽一些):
div[id~=root][class~=a] a
最后两个只是备选方案,以防由于某种原因对您的代码的原始修复(添加 a
后代选择器)不起作用。
上面的代码片段不使用带引号的字符串,这是可选的。
1 在 a
,在我原来的(错误的)解决方案之后。感谢他:)
您的 select 或正在 select 使用 ID='root' 和 class='a' 的 div。如果你想 select 那个 div 里面的标签,你需要让你的 select 或者:
div[id='root'].a a
在select的末尾附加'a'or告诉jquery到selectdiv的a里面。