Обновил библиотеку jQuery до 1.9.1 и начал разбираться с последствиями.
<script type="text/template" id="test_1"><div class="test-container">BBB</div> CCC</script><br>
<br>
<script type="text/javascript"><br>
var _test = $('#test_1'), _html = _test.html();<br>
console.log('10.', typeof(_html), _html.length, _html ); // 10. string 41 <div class="test-container">BBB</div> CCC<br>
console.log('11.', $('<span></span>'+_html).length ); // 11. 2<br>
console.log('12.', $(_html).length, $(_html).html() ); // 12. 1 BBB<br>
</script><br>
<br>
<script type="text/template" id="test_2"><br>
<div class="test-container"></div><br>
</script><br>
<br>
<script type="text/javascript"><br>
var _test = $('#test_2'), _html = _test.html();<br>
console.log('20.', typeof(_html), _html.length ); // 20. string 40<br>
console.log('21.', $('<span></span>'+_html).length ); // 21. 3<br>
console.log('22.', $(_html) ); // Uncaught Error: Syntax error, unrecognized expression: <div class="test-container"></div><br>
</script><br>
Неприятный вывод: попытка создать объект из кода шаблона приводит к ошибке, если перед первым открывающим тегом есть хотя бы один пробел.
var _obj = $( _.template( $('#test_2').html(), {key: value} ) ); // error is here<br>
Вопрос — как корректно создать из шаблона объект для последующих манипуляций?
Не удаляя из текста шаблонов концы строк и пробелы в начале.