我一直在寻找这样的jQuery快速过滤代码在这里:不是列表项为 https://github.com/syropian/jQuery-Quick-FilterjQuery的 - 搜索影像title属性
我希望能够用它来快速过滤图像的列表,在演示中使用。
演示使用此:
<script type="text/javascript">
$(document).ready(function(){
$('#txtSearch').quickfilter('#list li');
});
</script>
...
<input type="text" id="txtSearch" placeholder="Filter" />
<ul id="list">
<li>Apples</li>
<li>Oranges</li>
<li>Pineapples</li>
<li>Bananas</li>
<li>Dragonfruit</li>
<li>Peaches</li>
<li>Raspberries</li>
<li>Strawberries</li>
<li>Blueberries</li>
<li>Cantaloupe</li>
</ul>
我想做到这一点:
<script type="text/javascript">
$(document).ready(function(){
$('#txtSearch').quickfilter('#list img');
});
</script>
...
<input type="text" id="txtSearch" placeholder="Filter" />
<div id="list">
<img src="a.png" width="5" height="5" title="Apples" />
<img src="a.png" width="5" height="5" title="Oranges" />
<img src="a.png" width="5" height="5" title="Pineapples" />
<img src="a.png" width="5" height="5" title="Bananas" />
<img src="a.png" width="5" height="5" title="Dragonfruit" />
<img src="a.png" width="5" height="5" title="Peaches" />
<img src="a.png" width="5" height="5" title="Raspberries" />
<img src="a.png" width="5" height="5" title="Strawberries" />
<img src="a.png" width="5" height="5" title="Blueberries" />
<img src="a.png" width="5" height="5" title="Cantaloupe" />
</div>
在我的情况,我想基于图像的title属性能够过滤。
jQuery的快速过滤器的代码是这样的:
(function($){
$.extend($.expr[':'], {missing: function (elem, index, match) {
return (elem.textContent || elem.innerText || "").toLowerCase().indexOf(match[3]) == -1;
}});
$.extend($.expr[':'], {exists: function(elem, i, match, array){
return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
}});
$.extend($.fn,{
quickfilter: function(el){
return this.each(function(){
var _this = $(this);
var query = _this.val().toLowerCase();
_this.keyup(function() {
query = $(this).val().toLowerCase();
if(query.replace(/\s/g,"") != ""){
$(el+':exists("' + query.toString() + '")').show();
$(el+':missing("' + query.toString() + '")').hide();
}
else {
$(el).show();
}
});
});
}
});
})(jQuery);
我不知道是否有人也许能够提供一个关于如何修改它的标题搜索属性,请指针?
我意识到该函数使用“innerText”,并搜索<li>
列表项之间的内部文本。
在这种情况下,它需要搜索属性稍有不同。
'Quick-Filter'正在寻找文本内容。它不是那么大,只是阅读代码并创建它的副本,而不是在标题上工作! –
在'Quick-Filter'代码中将此行更改为'return(elem.textContent || elem.innerText ||'').toLow ...':return(elem.getAttribute('title')||' “).toLow ...'! –