jQuery自动完成显示不需要的动态html标记

jQuery autocomplete is showing unwanted dynamic html tags

本文关键字:动态 html 标记 不需要 显示 jQuery      更新时间:2023-09-26

不确定这些对象是如何不转换为html对象的。

我有这个功能:

var findPattern = new RegExp(request.term.toLowerCase(), "ig");
var highlightMatch = function(match) {
  return '<span class="highlight">' + match + '</span>';
};

它在这里被使用:

source: function(request, response) {
  $autocomplete_xhr = $.ajax({
    // .. truncated for your viewing pleasure ..
    success: function() {
      return {
         label: $.string(label).interpolate({name: row.customer.name, address: (row.customer.addr == null) ? '' : row.customer.addr}).str.replace(findPattern, highlightMatch),

但结果是,我可以看到<span>标记,而不是将它们解析为HTML。

你知道为什么会发生这种情况吗?我能做些什么来弥补这种情况?

明白了!将此添加到我的自动完成代码末尾。。据我所知,这与JS库中包含的代码完全相同。所以我不知道为什么只有从源代码中提取并手动放入文件中,这才会起作用。。

      })
      .each(function() {
        // Señor Hackovitz for rendering HTML elements..
        $(this).data("autocomplete")._renderItem = function(ul, item) {
          return $( "<li></li>" )
              .data( "item.autocomplete", item )
              .append( "<a>" + item.label + "</a>" )
              .appendTo( ul );
        };
      })

在@Mu Is Too Short的例子之后,我使用了一个.each语句,以防有许多自动补全可用。

干杯!