2013-02-11 42 views
2

我刚刚升级到1.9.1 一些技术defiificulties后,除了所有的工作:在制作的jQuery 1.9.1变量失败,并在1.8.3不

var $newthumbs = $('    <div id=\"car-7\" class=\"thumbnail_car thumbnail span2\" data-sorting-top=\"2\" data-sorting-date=\"2013-01-12 16:47:31 UTC\"></div>'); 

如果我把该线路的jQuery 1.8.3控制台它被接受,我可以用$ newthumbs

在1.9.1它失败Error: Syntax error, unrecognized expression:

找回我读过changelog,我没有看到有关应该破坏任何东西这个。我可能不知道很多jquery,但是这种类型的语法看起来很标准。

改变了什么?

更新

我发现这是空白here

HTML字符串:jQuery的1.9限制由$()出于安全原因,处理字符串 。虽然我们建议您使用 $ .parseHTML()来处理任意HTML模板,但迁移插件的1.1.0 版本会恢复旧的行为。

+0

为什么你包裹在$?如果只是一个普通的字符串,你可以删除它。 – OptimusCrime 2013-02-11 17:05:00

+0

在开始时删除巨人空间,它应该工作正常。 '$ .trim()'是你的朋友。 – adeneo 2013-02-11 17:09:35

回答

2

如果去掉空格,它将工作:

var $newthumbs = $('<div id=\"car-7\" class=\"thumbnail_car thumbnail span2\" data-sorting-top=\"2\" data-sorting-date=\"2013-01-12 16:47:31 UTC\"></div>'); 

DEMO:http://jsfiddle.net/dirtyd77/KFmMQ/1/

+0

可能是修剪问题? – Dom 2013-02-11 17:12:04

+0

让jquery 1.9.1不允许空格? – 2013-02-11 17:25:16

+0

嗯,这似乎是这种情况...目前,您可以使用自定义的trim()函数。我在本演示中为您提供了一个。希望我能更有帮助!如果您有任何问题,请告诉我!演示:http://jsfiddle.net/dirtyd77/KFmMQ/2/ – Dom 2013-02-11 17:34:42

0

你的问题是在字符串的开头的空白字符。我不知道为什么这是一个问题,但它显然是。

顺便说一句:您可以删除无意义的反斜杠:

var $newthumbs = $('<div id="car-7" class="thumbnail_car thumbnail span2" data-sorting-top="2" data-sorting-date="2013-01-12 16:47:31 UTC"></div>'); 

,或者您可以使用双引号周围字符串:

var $newthumbs = $("<div id=\"car-7\" class=\"thumbnail_car thumbnail span2\" data-sorting-top=\"2\" data-sorting-date=\"2013-01-12 16:47:31 UTC\"></div>"); 
+0

事情是这些div是自动生成的,所以baskslash是rails javascript转义 – 2013-02-11 17:12:27

+0

为什么它在1.8.3中工作? – 2013-02-11 17:14:01

+0

然后使用第二个选项。 – yankee 2013-02-11 17:14:04