我想要选择一个元素,例如
<div class="my class">InnerHTML</div>
虽然可以使用带有[class="my class"]
的CSS选择器轻松完成此操作,但gwtquery在输入中不带引号的意义上有所不同。它只接受[attribute=attributevalue]
等值。
当我在GQuery中应用相同的选择器时,中间有空格,它没有返回任何匹配项。我有一种感觉,这可能是因为在这种情况下库中的一些不正确的解析。是这样吗?
如果是这样,我还有其他方法可以使用GQuery选择这些元素吗?
答案 0 :(得分:2)
它适用于我(至少使用gwtquery-1.1.0和gwt 2.4.0)
GQuery myClassDivs = $("div[class=\"my class\"]");
返回<div class="my class"/>
的匹配项。
但是,使用class
属性时,通常最好使用~=
选择器,因为<div class="my class"/>
和<div class="class my"/>
通常应被视为等效。
所以我建议使用
GQuery myClassDivs = $("div[class~=my][class~=class]");
这也会选择<div class="my class special"/>
之类的东西,这通常是可取的。
答案 1 :(得分:1)
通常,要选择具有空格分隔字词的属性,您可以将[att~=val]
选择器用作mentioned by Chris Lercher。
或者,你知道,既然你正在选择class
属性,你可以改用类选择器:
GQuery myClassDivs = $("div.my.class");
关于这个:
当我在GQuery中应用相同的选择器时,中间有空格,它没有返回任何匹配项。我有一种感觉,这可能是因为在这种情况下库中的一些不正确的解析。是这样吗?
如果您指的是在未加引号的属性值中添加空格,那么它不是库中的解析错误。选择器本身无效,因为不带引号的属性值中的空格明显无效。
如果无法识别引用的属性值,则 是库中的解析错误。