1

假设我想选择一个元素,例如

<div class="my class">InnerHTML</div>

虽然这可以使用带有 的 CSS 选择器轻松完成[class="my class"]但 gwtquery的不同之处在于它不使用输入中的引号。它只接受像[attribute=attributevalue].

当我在 GQuery 中应用相同的选择器并且中间有空格时,它没有返回任何匹配项。我有一种感觉,这可能是因为库中对这种情况的一些不正确的解析。是这样吗?

如果是这样,有没有其他方法可以使用 GQuery 选择这些元素?

4

2 回答 2

2

它对我有用(至少使用 gwtquery-1.1.0 和 gwt 2.4.0)

GQuery myClassDivs = $("div[class=\"my class\"]");

返回匹配项<div class="my class"/>


但是,对于该class属性,通常最好使用~=选择器来代替,因为通常应该将<div class="my class"/>and<div class="class my"/>视为等效。

所以我建议使用

GQuery myClassDivs = $("div[class~=my][class~=class]");

这也将选择类似的东西<div class="my class special"/>,这通常是可取的。

于 2012-05-23T21:17:53.280 回答
1

通常,要选择以空格分隔的单词的属性,您将使用Chris Lercher 提到[att~=val]的选择器。

或者,你知道,既然你是按class属性选择的,你可以只使用类选择器:

GQuery myClassDivs = $("div.my.class");

关于这一点:

当我在 GQuery 中应用相同的选择器并且中间有空格时,它没有返回任何匹配项。我有一种感觉,这可能是因为库中对这种情况的一些不正确的解析。是这样吗?

如果您指的是在未引用的属性值中添加空格,则这不是库中的解析错误。选择器本身是无效的,因为未加引号的属性值中的空格是显式无效的。

如果无法识别引用的属性值,则是库中的解析错误。

于 2012-05-24T05:23:24.840 回答