2012-12-05 49 views
2

我正在coffeescript中的backbone.js中工作,我試圖使用'where'函數從集合中選擇一個模型。我傳遞一個字符串變量作爲第二個參數,並且該字符串是通過在span元素上返回一個jQuery .text()函數來分配的。jQuery .text()返回的字符串行爲不像字符串

我確實從.text()函數中獲取了一個字符串,但它的行爲不像普通字符串。如果我手動分配它,我只能使用變量作爲where()參數。

編輯:我改變$( 'e.target')到$(e.target),事實證明,我確實在我的要點。我只是在總結我的問題時錯誤地輸入了它。你可以在下面看到我在右邊看到的返回值。

value = $(e.target).text()    # value => 'target text' 
value.charAt(0)       # =>*nothing at all!* 

value = "manually assigned text"   # value => 'manually assigned text' 
value.charAt(0)       # =>* 'm' 

這是我作進一步檢查片段:https://gist.github.com/4215344

+1

如果您刪除引號''e.target''? – dfsq

+0

你嘗試過var value = ...嗎? –

回答

0

原來,檢查value.length是關鍵。出於某種原因,它有點像36個字符。我試着在我的haml模板中調用那個變量的.strip,但額外的空白不是來自ruby的一面。

我剛剛結束了使用jQuery的.trim()函數。

這是我的新任務:

fontName = $(e.target).text().trim() 
3

試試這個:

value = $(e.target).text(); 

沒有引號e.target

1

問題不是.text(),它是您的選擇器; 'e.target'不是有效的選擇器。您可能的意思是:

value = $(e.target).text(); 

原樣,在空對象上調用.text()返回空白。

通過刪除引號,您實際上引用了事件對象的target屬性,該屬性直接對應於元素。你以前有一個<e>元素的選擇器字符串,class='target',這顯然不是你想要的。

相關問題