2009-11-05 82 views
0

當我使用jquery選擇contains/find時,是否需要以某種方式轉義空間?當值包含空間時,jquery不選擇選項標記

我嘲笑他了這麼原諒錯別字...... 如果我有了一些選項

<select title="animals"> 
<option value="Dog Black">Dog Black</option> 
<option value="Cat Black">Cat Black</option> 
<option value="Dog Brown">Dog Brown</option> 
</select> 

我試圖找到這個選擇使用jQuery的選項SELECT標記。但當傳遞給搜索的值包含空格時,似乎「find」方法或「contains」函數失敗。例如:

下收益的大小爲2:

$('*[title="animals"]').find("option:contains('Dog')").size() 

但這返回0 whre我預計2以及:

$('*[title="animals"]').find("option:contains('Dog B')").size() 

我的猜測是,這事做與選擇器,它正在尋找一個「B」或什麼的兒童元素,但林不太確定。

+0

是1.2.6版本的jQuery的一個bug,在1.3.2 workgin細...對不起:) – Jay 2009-11-05 20:23:14

+0

我有一個類似的問題。我在下拉列表中混合了文本/值和空格。在改變選擇時,使用JavaScript/jQuery可以正確地檢索非空格值,但是如果值有空格,它將返回列表中的第一個值,甚至所選的索引也是0.本文還討論了同樣的問題 - http ://www.neowin.net/forum/topic/748140-jquery-custom-selectbox-not-passing-value-with-spaces/ – 2012-04-19 06:04:20

+0

是的,它似乎是一個錯誤。我找到了一個解決方案,並將其添加到指定網站。 – 2012-04-19 13:35:59

回答

0

我在一個頁面中測試了這個確切的代碼基本上沒有別的吧,它在所有瀏覽器的find()函數中返回2。您的代碼中可能還有其他內容會干擾您的結果?也許你在某個地方隱藏了結果並丟失了價值的軌跡,或者覆蓋了它?

或者你可能已經找到了問題。 :P

+0

感謝您的測試這是jquery的1.2.6版本中的一個錯誤。 1.3.2工作正常。我給你幫助的信貸:) – Jay 2009-11-05 22:17:29

0

對不起敲我的頭幾個小時後,我發現AA的bug其他地方在代碼發佈之後引起的問題,關閉了這一點