如何解决jQuery通过将HTML放入“标签”响应中来自动完成格式化
|| 我正在使用JQuery自动完成功能,并使用\“ label \”和\“ value \”发送响应。 我正在尝试使标签具有格式化的HTML。 json_encode转义了我试图通过的html格式。 我应该采取其他方式吗?如何使json_encode无法转义html格式(它将\“ / \”更改为\“ \\ / \”)? 示例代码:$return[$i][\'label\'] = $row[\'text\'];
$return[$i][\'label\'] = \"<span style=\'font-weight:bold;\'>\" . $row[\'text\'] . \"</span> - \" . row[\'name\'];
json_encode($return);
当我只是手动检查url响应时,我可以看到他正在将\“ \”转义为\“ <\\ / span> \”
解决方法
我不确定您使用的是哪种自动完成功能。如果您使用的是http://jqueryui.com/demos/autocomplete/,则问题不是json,默认情况下该标签不支持html
标签始终被视为文本,如果您希望标签被视为html,则可以使用ScottGonzález\的html扩展名。演示都集中于source-option的不同变体-寻找与您的用例相匹配的示例,然后看一下代码
你可以做这样的事情。代码正在做的是以黄色显示自动完成匹配的文本。
function autoCompleteRender(ul,item) {
var searchTerm = this.term;
var itemLabel = item.label;
itemLabel = itemLabel.replace(new RegExp(\"(\" + searchTerm + \")\",\"gi\"),\'<strong class=\"itemhover\">$1</strong>\');
return $(\"<li></li>\").data(\"item.autocomplete\",item).append(\"<a>\" + itemLabel + \"</a>\").appendTo(ul);
}
$(yourselector).autocomplete({
source: function(request,response) {
//your source
}
}).data(\"autocomplete\")._renderItem = autoCompleteRender;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。