有没有办法突出显示搜索结果中的特定项目?

时间:2017-07-21 20:36:05

标签: jquery-chosen

我一直在尝试对所选下拉搜索结果的行为进行细微更改,但似乎没有任何直接的方法来实现它们。我有一个以三个字母的ISO国家/地区代码开头的国家/地区列表。我希望能够照常搜索,但如果国家/地区代码完全匹配,请突出显示该国家/地区。问题是匹配的国家/地区代码并不总是列表中的第一项。更一般的请求将能够访问结果列表,并将选择设置为除第一个之外的某个项目。

通过检查,它看起来像搜索结果只存在作为一个jquery对象,并且其中列表项包括一个带有原始选项列表索引的data-option-array-index,所以我可以找到我的项目知道我希望在DOM对象中突出显示并将类设置为“突出显示”。但我也可能需要将其滚动到视图中,并且直接搞乱底层DOM并不理想,因此访问选择的函数会非常好。

1 个答案:

答案 0 :(得分:0)

所以,我通过访问DOM找到了它。我在初始数组中有我想要突出显示的索引,并且以下代码将执行此操作,假设它位于结果列表中(使用lodash _.find):

var highlightChosenResult = function(index) {
  var resultList = $('li.active-result');
  var result = _.find(resultList, function(el) {
    return +$(el).attr('data-option-array-index') === index;
  });
  if (result) {
    this.chosenApi.result_do_highlight($(result));
  }
}