使用jquery基于连字符词搜索<li>内容

时间:2016-05-26 14:17:01

标签: javascript jquery

我有一个搜索文本框用于搜索li内容。搜索结果仅基于连字符后的li内容。

这是li内容: 导演 - MacLeod Conner

我希望根据 MacLeod Conner 显示li搜索字词。不是导演。 怎么做?帮助任何人。

HTML:

     <li><input type='checkbox'  name='' class='' value="1"><div>Director-MacLeod Conner</div></li>
      <li><input type='checkbox'  name='' class='' value="2"><div>Director-Dolores Arnold</div></li>
      <li><input type='checkbox'  name='' class='' value="3"><div>Music Directer-Blake Francis</div></li>
      <li><input type='checkbox'  name='' class='' value="4"><div>Autitor-Chavarin Deanna</div></li>
      <li><input type='checkbox'  name='' class='' value="5"><div>Director-Robert</div></li>

JS:

$(document).ready(function () { 
$('ul#toList > li').hide();
$(document).on('click', '#btn1', function(e) {        
                 var Textnew=$("#textNew").val();   
                 if(Textnew.length>=3){         
                   var matches = $('ul#toList').find( 'li:contains('+ $( "#textNew" ).val() +')');
                   $( 'li', 'ul#toList' ).not( matches ).slideUp();
                   matches.slideDown();  
                 }
                 else{
                 $('ul#toList > li').hide();     
                 }

          });

});

小提琴:http://jsfiddle.net/6QDJM/17/

1 个答案:

答案 0 :(得分:0)

没有选择器可以完成此任务。因此,find代替filter,可以将$(document).ready(function () { $(document).on('click', '#btn1', function(e) { var Textnew=$("#textNew").val(); if(Textnew.length>=3){ $('ul#toList li') .show() .filter(function(index){ var parts = $(this).find('div').text().split('-'); return (parts[1].indexOf(Textnew) == -1); }) .slideUp(); } else{ $('ul#toList > li').show(); } }); }); 与函数一起使用并直接隐藏元素:

li

这将遍历每个Traceback (most recent call last): File "pollingstations.py", line 12, in <module> src = json.load(open('pollstations.geojson')) File "C:\Python27\ArcGIS10.3\lib\json\__init__.py", line 290, in load **kw) File "C:\Python27\ArcGIS10.3\lib\json\__init__.py", line 338, in loads return _default_decoder.decode(s) File "C:\Python27\ArcGIS10.3\lib\json\decoder.py", line 365, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Python27\ArcGIS10.3\lib\json\decoder.py", line 381, in raw_decode obj, end = self.scan_once(s, idx) UnicodeDecodeError: 'utf8' codec can't decode byte 0xcd in position 2: invalid continuation byte 并按连字符拆分文本。然后它只将连字符后面的字符串部分与搜索文本进行比较。