在jquery 1.9.1中创建变量失败,而在1.8.3中则没有

时间:2013-02-11 17:03:25

标签: jquery html jquery-1.8 jquery-1.9

我刚升级到1.9.1 经过一些技术上的决定之后,除了:

之外的所有工作
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   版本的Migrate插件可恢复旧的行为。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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>");