Syntax error, unrecognized expression
场景:jquery Syntax error, unrecognized expression:的解决方法
jquery Syntax error, unrecognized expression:的解决办法
参考资料:
http://bugs.jquery.com/ticket/13223
问题:
将模板的html内容转换成jquery时报以下错误:
Syntax error, unrecognized expression:
模板代码:
操作代码:
修改后的操作代码:
原因:jquery 1.9*开始为了安全性,必须将script中的html内容parseHTML转换后使用。否则就报无法解析HTML内容的错误 。
用法:
$($.parseHTML(this.linkTemplate))
解决代码:
jquery Syntax error, unrecognized expression:的解决办法
参考资料:
http://bugs.jquery.com/ticket/13223
问题:
将模板的html内容转换成jquery时报以下错误:
Syntax error, unrecognized expression:
模板代码:
<script type="text/template" id="link-template"> <li class="linkItem"> <div data-role="fieldcontain" class="linkContainer" > <input data-mini="true" data-inline="true" class="linkInput" name="content[]" data-theme="c" placeholder="Insert Link here" type="text" maxlength="2000" /> <a data-role="button" data-mini="true" data-iconshadow="false" data-theme="d" class="deleteIcon" data-inline="true" data-icon="remove" data-iconpos="notext">Delete</a> </div> </li> </script>
操作代码:
var linkUl = $("#linkUl"), listHeight; $(this.linkTemplate).appendTo(linkUl);
修改后的操作代码:
var linkUl = $("#linkUl"), listHeight; $($.parseHTML(this.linkTemplate, document, true)).appendTo(linkUl);
原因:jquery 1.9*开始为了安全性,必须将script中的html内容parseHTML转换后使用。否则就报无法解析HTML内容的错误 。
用法:
$($.parseHTML(this.linkTemplate))
解决代码:
// This can come from an evil person var html = "<p>hello</p><script src='bad.js'></script>" // Won't load/run the script in 1.10 $(html).appendTo("body"); // Loads and runs script $($.parseHTML(html, document, true)).appendTo("body");