2

我在 coffeescript 中的一个主干.js 中工作,我正在尝试使用“where”函数从集合中选择一个模型。我传入一个字符串变量作为第二个参数,该字符串是通过在 span 元素上返回 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

4

3 回答 3

3

试试这个:

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

周围没有引号e.target

于 2012-12-05T13:34:32.090 回答
1

问题不是.text(),而是你的选择器;'e.target'不是有效的选择器。您可能打算这样做:

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

照原样,调用.text()空对象返回空白。

通过删除引号,您实际上是在引用target事件对象的属性,它直接对应于一个元素。您之前拥有的是带有 的<e>元素的选择器字符串class='target',这显然不是您想要的。

于 2012-12-05T13:34:42.393 回答
0

原来检查 value.length 是关键。由于某种原因,它大约是 36 个字符。我尝试在我的 haml 模板中调用 .strip 那里的变量,但额外的空格不是来自 ruby​​ 方面。

我刚刚使用了 jQuery 的 .trim() 函数。

这是我的新任务:

fontName = $(e.target).text().trim()
于 2012-12-05T16:19:30.447 回答