2

我刚刚升级到 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:

我已经阅读了更新日志,我没有看到任何相关的内容应该打破这一点。我可能不太了解 jquery,但这种语法看起来很标准。

发生了什么变化?

更新

我确实在这里找到了这个

带有前导空格的 HTML 字符串:出于安全原因,jQuery 1.9 限制了由 $() 处理的字符串。尽管我们建议您使用 $.parseHTML() 来处理任意 HTML,例如模板,但 1.1.0 版本的 Migrate 插件恢复了旧的行为。

4

2 回答 2

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>');

演示:http: //jsfiddle.net/dirtyd77/KFmMQ/1/

于 2013-02-11T17:10:22.420 回答
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>");
于 2013-02-11T17:11:31.273 回答