Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jquery自动完成结果的末尾添加自定义列表项_Jquery_Autocomplete - Fatal编程技术网

如何在jquery自动完成结果的末尾添加自定义列表项

如何在jquery自动完成结果的末尾添加自定义列表项,jquery,autocomplete,Jquery,Autocomplete,我正在使用jqueryautocomplete,我已经设置了这些变量 $("#some_id").autocomplete("search.php?in=somewhere", { width: 270, selectFirst: false }); $('#some_id').setOptions({max: 5}); 正如您所看到的,它返回5个列表项(结果),我想添加第六个列表项,其中应该显示一些文本以及除了这5个之外存在多少个结果 我该怎么做?可能需要对该

我正在使用jqueryautocomplete,我已经设置了这些变量

$("#some_id").autocomplete("search.php?in=somewhere", {
        width: 270,
        selectFirst: false
});
$('#some_id').setOptions({max: 5});
正如您所看到的,它返回5个列表项(结果),我想添加第六个列表项,其中应该显示一些文本以及除了这5个之外存在多少个结果

我该怎么做?

可能需要对该函数进行编辑

    function fillList() {
        list.empty();
        var max = limitNumberOfItems(data.length);
        for (var i=0; i < max; i++) {
            if (!data[i])
                continue;
            var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
            if ( formatted === false )
                continue;
            var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
            $.data(li, "ac_data", data[i]);
        }
        // INSERT YOUR ADDITIONAL ENTRY HERE... 
        listItems = list.find("li");
        if ( options.selectFirst ) {
            listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
            active = 0;
        }
        // apply bgiframe if available
        if ( $.fn.bgiframe )
            list.bgiframe();
    }
函数fillList(){
list.empty();
var max=limitNumberOfItems(数据长度);
对于(变量i=0;i”).html(options.highlight(格式化,term)).addClass(i%2==0?“ac_偶数”):“ac_奇数”).appendTo(列表)[0];
$.data(li,“ac_数据”,数据[i]);
}
//在此处插入您的附加条目。。。
listItems=list.find(“li”);
如果(options.selectFirst){
slice(0,1).addClass(CLASSES.ACTIVE);
活动=0;
}
//应用bgiframe(如果可用)
如果($.fn.bgiframe)
list.bgiframe();
}
非常感谢! 这就是我所做的

function fillList() {
  list.empty();
  var max = limitNumberOfItems(data.length);
  for (var i=0; i < max; i++) {
   if (!data[i])
    continue;
   var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
   if ( formatted === false )
    continue;
   var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
   $.data(li, "ac_data", data[i]);
  }

  listItems = list.find("li");

  //////////////////////////// TOM //////////////////////////////////////////////////////////////////////////////////
  if( data.length > 5 ){ 
   if( (data.length-5) == 1 ){
    listItems[4].innerHTML +='<div style="position:absolute; top:127px; left:0px; width:260px;text-align:right;" >'+(data.length-5)+' item isn\'t shown</div>';
   }
   else{
    listItems[4].innerHTML +='<div style="position:absolute; top:127px; left:0px; width:260px;text-align:right;" >'+(data.length-5)+' items aren\'t shown</div>';
   }
  }
  ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  if ( options.selectFirst ) {
   listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
   active = 0;
  }
  // apply bgiframe if available
  if ( $.fn.bgiframe )
   list.bgiframe();
 }
函数fillList(){
list.empty();
var max=limitNumberOfItems(数据长度);
对于(变量i=0;i”).html(options.highlight(格式化,term)).addClass(i%2==0?“ac_偶数”):“ac_奇数”).appendTo(列表)[0];
$.data(li,“ac_数据”,数据[i]);
}
listItems=list.find(“li”);
////////////////////////////汤姆//////////////////////////////////////////////////////////////////////////////////
如果(data.length>5){
如果((数据长度-5)==1){
listItems[4]。innerHTML+=''+(data.length-5)+'项目未显示';
}
否则{
listItems[4]。innerHTML+=''+(data.length-5)+'未显示项';
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果(options.selectFirst){
slice(0,1).addClass(CLASSES.ACTIVE);
活动=0;
}
//应用bgiframe(如果可用)
如果($.fn.bgiframe)
list.bgiframe();
}

我就是这么做的,在这个例子中,我的后端有一个json(对于默认html,可能可以稍微调整一下:),但整个想法应该是一样的

$('#search').autocomplete({
    source: function(request, response) {
        var requestUrl = 'search.php';
        requestUrl += '?term=' + $('#search').val();
        $.getJSON(requestUrl, request, function(data){
            // I know here - what kind of array of json objects I'll get as
            // a result, with <li> elements it should be even easier (I guess)
            // AND: this will add item, if there are more than 5 elms in the list,
            // but you should get the idea
            if (5 < data.length) {
                data.push({
                    id: -1,
                    value: '',
                    label: 'Put your own question...'
                });
            }
            response(data);
        });
    }
});
$(“#搜索”)。自动完成({
来源:功能(请求、响应){
var requestUrl='search.php';
requestUrl+='?term='+$('#搜索').val();
$.getJSON(请求URL、请求、函数(数据){
//我知道这里——我将得到什么样的json对象数组
//因此,使用
  • 元素应该更容易(我猜) //和:如果列表中有5个以上的榆树,这将添加项, //但你应该明白这一点 如果(5<数据长度){ 数据推送({ id:-1, 值:“”, 标签:“提出你自己的问题…” }); } 答复(数据); }); } });