Javascript jQuery live search插件同时显示的结果太多

Javascript jQuery live search插件同时显示的结果太多,javascript,jquery,ajax,jquery-plugins,Javascript,Jquery,Ajax,Jquery Plugins,这是一个用于实时搜索的jQuery插件。很简单。你在搜索框中输入,当你这样做时,插件会实时显示结果 问题是,如果我在小提琴中键入“item”,它将找到并标记(突出显示)所有单词“item”。我希望它只标记找到的第一个单词 下图显示了问题所在: 下图显示了我需要实现的结果: 如您所见,在一张图片中,它显示所有单词“item”,但在第二张图片中,它仅显示第一个结果“item” 您可以在 我需要做到这一点,因为我需要在以后设置“上一步”和“下一步”按钮。换句话说,我只是试图从浏览器中模拟Contr

这是一个用于实时搜索的jQuery插件。很简单。你在搜索框中输入,当你这样做时,插件会实时显示结果

问题是,如果我在小提琴中键入“item”,它将找到并标记(突出显示)所有单词“item”。我希望它只标记找到的第一个单词

下图显示了问题所在:

下图显示了我需要实现的结果:

如您所见,在一张图片中,它显示所有单词“item”,但在第二张图片中,它仅显示第一个结果“item”

您可以在

我需要做到这一点,因为我需要在以后设置“上一步”和“下一步”按钮。换句话说,我只是试图从浏览器中模拟
Control+F
功能。 HTML代码:

<input id="search" name="search" placeholder="Start typing here" type="text" data-list=".list">
<ul class="list">
  <li>item 1</li>
  <li>item 2</li>
  <li>hasta la vista baby</li>
  <li><a href="#">item 2</a></li>


  <div>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sed nulla magna. Vivamus dictum, metus ut lobortis sollicitudin, nunc elit ultricies felis, sit amet lobortis tellus mauris id purus. Cras eget tellus bibendum, gravida dolor eget, porta elit. Nullam sed porta odio, vitae fermentum nunc. Nulla consequat enim id mauris posuere placerat. Pellentesque leo risus, maximus sed vehicula a, fermentum ultrices turpis. Maecenas lectus neque, scelerisque non urna quis, varius porta metus. Mauris rutrum lectus enim, eu semper ante porta ac.

 </div> 

  • 项目1
  • 项目2
  • 哈斯塔拉维斯塔宝贝酒店
  • Lorem ipsum dolor sit amet,是一位杰出的献身者。大整数。这是一句至理名言,是一句至理名言,是一句至理名言,一句至理名言,一句至理名言,一句至理名言,一句至理名言,一句至理名言,一句至理名言,一句至理名言,一句至理名言,一句至理名言。这是一个很好的例子。不含酒精的发酵液。未经许可,不得使用mauris posuere Placelat。利奥·里索斯(leo risus)、马克西姆(maximus sed vehicula a)、乌尔特里斯发酵菌(fermentum ultrices turpis)。梅塞纳·莱克塔斯·内克、非乌尔纳·奎斯的权杖、梅塔斯之门。Mauris rutrum lectus enim,欧盟委员会主席。

JQUERY:

/**
 * HideSeek jQuery plugin
 *
 * @copyright Copyright 2015, Dimitris Krestos
 * @license   Apache License, Version 2.0 (http://www.opensource.org/licenses/apache2.0.php)
 * @link      http://vdw.staytuned.gr
 * @version   v0.7.1
 *
 * Dependencies are include in minified versions at the bottom:
 * 1. Highlight v4 by Johann Burkard
 *
 */

  /* Sample html structure

  <input name="search" placeholder="Start typing here" type="text" data-list=".list">
  <ul class="list">
    <li>item 1</li>
    <li>...</li>
    <li><a href="#">item 2</a></li>
  </ul>

  or

  <input name="search" placeholder="Start typing here" type="text" data-list=".list">
  <div class="list">
    <span>item 1</span>
    <span>...</span>
    <span>item 2</span>
  </div>

  or any similar structure...

  */

!function(e){"use strict";e.fn.hideseek=function(t){var s={list:

".hideseek-data",nodata:"",attribute:"text",highlight:!1,ignore:"",headers:"",navigation:!1,ignore_accents:!1,hidden_mode:!1,min_chars:1},t=e.extend(s,t);return this.each(function(){var s=e(this);s.opts=[],e.map(["list","nodata","attribute","highlight","ignore","headers","navigation","ignore_accents","hidden_mode","min_chars"],

                                                                                                                                                                                                                     function(e){s.opts[e]=s.data(e)||t[e]}),s.opts.headers&&(s.opts.ignore+=s.opts.ignore?", "+s.opts.headers:s.opts.headers);var i=e(s.opts.list);s.opts.navigation&&s.attr("autocomplete","off"),s.opts.hidden_mode&&i.children().hide(),s.keyup(function(t){function o(e){return e.children(".selected:visible")}function n(e){return o(e).prevAll(":visible:first")}function a(e){return o(e).nextAll(":visible:first")}if(38!=t.keyCode&&40!=t.keyCode&&13!=t.keyCode&&(8!=t.keyCode?s.val().length>=s.opts.min_chars:!0)){var r=s.val().toLowerCase();i.children(s.opts.ignore.trim()?":not("+s.opts.ignore+")":"").removeClass("selected").each(function(){var t=("text"!=s.opts.attribute?e(this).attr(s.opts.attribute)||"":e(this).text()).toLowerCase(),i=-1==t.removeAccents(s.opts.ignore_accents).indexOf(r)||r===(s.opts.hidden_mode?"":!1);i?(e(this)

    /* Prevents results from being filtered - Default value: .hidden()*/
    .show(),s.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     trigger("_after_each")):(s.opts.highlight?e(this).removeHighlight().highlight(r).show():e(this).show(),s.trigger("_after_each"))}),s.opts.nodata&&(i.find(".no-results").remove(),i.children(':not([style*="display: none"])').length||i.children().first().clone().removeHighlight().addClass("no-results").show().prependTo(s.opts.list).text(s.opts.nodata)),s.opts.headers&&e(s.opts.headers,i).each(function(){e(this).nextUntil(s.opts.headers).not('[style*="display: none"],'+s.opts.ignore).length?e(this).show():e(this).hide()}),s.trigger("_after")}s.opts.navigation&&(38==t.keyCode?o(i).length?(n(i).addClass("selected"),o(i).last().removeClass("selected")):i.children(":visible").last().addClass("selected"):40==t.keyCode?o(i).length?(a(i).addClass("selected"),o(i).first().removeClass("selected")):i.children(":visible").first().addClass("selected"):13==t.keyCode&&(o(i).find("a").length?document.location=o(i).find("a").attr("href"):s.val(o(i).text())))})})},e(document).ready(function(){e('[data-toggle="hideseek"]').hideseek()})}(jQuery);

/*

highlight v4

Highlights arbitrary terms.

<http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html>

MIT license.

Johann Burkard
<http://johannburkard.de>
<mailto:jb@eaio.com>

*/
jQuery.fn.highlight=function(t){function e(t,i){var n=0;if(3==t.nodeType){var a=t.data.removeAccents(true).toUpperCase().indexOf(i);if(a>=0){var s=document.createElement("mark");s.className="highlight";var r=t.splitText(a);r.splitText(i.length);var o=r.cloneNode(!0);s.appendChild(o),r.parentNode.replaceChild(s,r),n=1}}else if(1==t.nodeType&&t.childNodes&&!/(script|style)/i.test(t.tagName))for(var h=0;h<t.childNodes.length;++h)h+=e(t.childNodes[h],i);return n}return this.length&&t&&t.length?this.each(function(){e(this,t.toUpperCase())}):this},jQuery.fn.removeHighlight=function(){return this.find("mark.highlight").each(function(){with(this.parentNode.firstChild.nodeName,this.parentNode)replaceChild(this.firstChild,this),normalize()}).end()};

// Ignore accents
String.prototype.removeAccents=function(e){return e?this.replace(/[áàãâä]/gi,"a").replace(/[éè¨ê]/gi,"e").replace(/[íìïî]/gi,"i").replace(/[óòöôõ]/gi,"o").replace(/[úùüû]/gi,"u").replace(/[ç]/gi,"c").replace(/[ñ]/gi,"n"):this};







$(document).ready(function() {
  $('#search').hideseek({
      list:           '.hideseek-data',
      nodata:         'Nada encontrado',
      attribute:      'text',
      highlight:      true,
      ignore:         '',
      hidden_mode: false,
      navigation:     false,
      ignore_accents: false
});
});
/**
*HideSeek jQuery插件
*
*@版权所有2015,Dimitris Krestos
*@license-Apache-license,版本2.0(http://www.opensource.org/licenses/apache2.0.php)
*@linkhttp://vdw.staytuned.gr
*@v0.7.1版
*
*依赖项包含在底部的缩小版本中:
* 1. Johann Burkard重点介绍v4
*
*/
/*示例html结构
  • 项目1
或 项目1 ... 项目2 或任何类似的结构。。。 */ !函数(e){“使用严格”;e.fn.hideseek=函数(t){var s={list: “.hideseek data”,nodata:”,attribute:“text”,highlight:!1,ignore:”,headers:”,navigation:!1,ignore_accents:!1,min_chars:1},t=e.extend(s,t);返回此.each(function(){var s=e(this);s.opts=[],e.map([“list”,“nodata”,“attribute”,“highlight”,“ignore”,“ignore”,“headers”,“navigation”,“navigation”,“ignore_accents”,“hidden_mode”,“mind_chars”,“ming”,“minu chars”, 函数(e){s.opts[e]=s.data(e)| | t[e]}),s.opts.headers&&(s.opts.ignore+=s.opts.ignore?”,“+s.opts.headers:s.opts.headers;var i=e(s.opts.list);s.opts.navigation&s.attr(“自动完成”,“关闭”),s.opts.hidden模式和i.children(),s.hide(),s.keyup(函数(t){函数o(e){返回e.children(.selected:visible)(函数n){.previous.e){返回e}{(“:visible:first”)}函数a(e){return o(e).nextAll(“:visible:first”)}如果(38!=t.keyCode&&40!=t.keyCode&&13!=t.keyCode&(8!=t.keyCode?s.val().length>=s.opts.min_chars:!0)){var r=s.val().toLowerCase();i.childrent(s.opts.ignore.trim():not(“+s.opts.ignore+”):).removeClass()。每个(函数文本){.opt.attr=(s.opts.attribute)| |“”:e(this.text()).toLowerCase(),i=-1==t.removeAccents(s.opts.ignore_重音)。indexOf(r)| | r==(s.opts.hidden_模式?:!1);i?(e(this) /*防止筛选结果-默认值:。隐藏()*/ .show(),s。 触发器(“'u after'u each”):(s.opts.highlight?e(this.removeHighlight().highlight(r.show()):e(this.show(),s.trigger('u after'u each')),s.opts.nodata&(i.find(.no results”)。remove(),i.childrent(':not([style*=“display:none”])))。length | i.children().first().clone().removeHighlight().addClass('no results”)。show().prependTo(s.list)。text(s.nodata)),s.opts.headers和&e(s.opts.headers,i).each(function(){e(this).nextUntil(s.opts.headers).not('[style*=“display:none”],'+s.opts.ignore”).length?e(this).show():e(this.hide()),s.trigger('u after)}s.opts.navigation&(38==t.keyCode?o(i).length?(n(i).addClass(“selected”):o(i)选定的“:40==t.keyCode?o(i).length?(a(i).addClass(“选定的”):o(i).first().removeClass(“选定的”):i.children(:可见的”).first().addClass(“选定的”):13==t.keyCode&(o(i).find(“a”).length?document.location=o(i).find(“a”).a”).attr(“href”):s.val(o(i.text()))}),e(document.ready)(function(){('e('data toggle='data toggle=“hideseek=”)))).hideseek()))))}(jQuery}); /* 突出显示v4 套利者