2013-04-04 2 views
3

Пожалуйста, смотрите эту скрипку: http://jsfiddle.net/VdZJx/2/Почему мой jQuery-шаблонный подход не работает в jQuery 1.9.1?

$(function() 
{ 
    var li = $($("#link-item-template").html()).find("a").attr({ 
     href: "javascript:;" 
    }).html("Toggle"); 

    $("ul").append(li); 
}); 

Это является шаблонным подходом, который я, и как я видел даже некоторые другой ЛИЭС, используемый для хранения и создания шаблонов HTML.

Если взять JQuery версии 1.9.1, пусть этот демонстрационный пробег и смотреть консоль получается, что Sizzle выдает следующее сообщение об ошибке при попытке создать новый объект JQuery из $().html(). См.:

Uncaught Error: Syntax error, unrecognized expression: <li> <input type="checkbox" /> <a></a> </li>

Что я могу сделать, чтобы заставить его работать снова?

ответ

1

Как вы не получаете правильные элементы, а содержимое тега скрипта в виде строки, которая является HTML, в строку HTML добавляется много пробелов и символов новой строки, и вам нужно обрезать это сделать его работу в качестве действительного выбора:

$($.trim($("#link-item-template").html())) 

FIDDLE

+0

Сладкий Иисус ... Я попробовал все, но это не. Это правильный ответ и устраняет проблему. Благодаря! – 2013-04-04 14:42:39

Смежные вопросы