2012-05-23 17 views
1

說我要選擇這樣一個元素使用gwtquery,我們如何選擇具有包含多個單詞的值的屬性的元素?

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

雖然這可能很容易地使用CSS選擇器與[class="my class"]來完成,gwtquery在這個意義上,它沒有考慮引號輸入的差異。它只接受像[attribute=attributevalue]這樣的值。

當我在GQuery中應用相同的選擇器時,兩者之間的空間不匹配。我有一種感覺,這可能是由於這種情況下庫中的一些不正確的解析。這是嗎?

如果是這樣,是否還有其他方法可以使用GQuery選擇這些元素?

回答

2

這對我的作品(至少gwtquery-1.1.0和2.4.0 GWT)

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"/>,這是通常需要。

+0

謝謝!使用多個屬性選擇器確實有效。我同意「使用風格」,之前我曾嘗試過,不知何故,它不起作用。當然,這個問題可能與gquery無關,而可能是我的代碼中其他地方的編碼錯誤。 –

1

一般來說,要選擇空格分隔的單詞的屬性,您將使用[att~=val]選擇器作爲mentioned by Chris Lercher

或者,你知道的,因爲你在class選擇屬性,無論如何,你可以只使用類選擇,而不是:

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

對此:

當我申請了相同的選擇在GQuery中有空格的情況下,它沒有返回任何匹配。我有一種感覺,這可能是由於這種情況下庫中的一些不正確的解析。這是嗎?

如果您指的是在未加引號的屬性值中添加空格,它不是庫中的分析錯誤。選擇器本身是無效的,因爲未加引號的屬性值中的空格顯式無效。

如果引用的屬性值未被識別,則是庫中的解析錯誤。

相關問題