2013-02-11 1 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, но этот тип синтаксиса выглядит стандартным.

Что изменилось?

Update

Я нашел это here

HTML строку с ведущими пробелами: JQuery 1.9 ограничивает строку обрабатываемых $() по соображениям безопасности. Хотя мы рекомендуем использовать $ .parseHTML() для обработки произвольных HTML-подобных шаблонов, версия плагина Migrate версии 1.1.0 восстанавливает прежнее поведение.

+0

почему вы заключаете, что в $? Если это обычная строка, вы можете просто удалить ее. – OptimusCrime

+0

Удалите пространство гиганта в начале, и оно должно работать нормально. '$ .trim()' ваш друг. – adeneo

ответ

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

+0

, поэтому jquery 1.9.1 не позволяет пробелы? –

+0

Хм, похоже, это так ... пока вы можете использовать пользовательскую функцию 'trim()'. Я предоставил вам одну в этой демонстрации. Хотел бы я быть более полезным! Дайте знать, если у вас появятся вопросы! Демо: http://jsfiddle.net/dirtyd77/KFmMQ/2/ – Dom

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

Дело в том, что эти divs автоматически генерируются, поэтому baskslash - это rails javascript escaping –

+0

, почему он работает в 1.8.3? –

+0

, затем используйте второй вариант. – yankee