我有一个关于LiveFilter的问题。或如何在没有LiveFilter的情况下以其他方式制作它并不那么重要。因此,iv获得了页面,并获得了由JSON文件制成的div。而且我的过滤器无法正常工作。所以我得到了这样的页面Before,而即时通讯开始按名称或数字进行搜索时,应该是这样的AfterShouldBe
所以即时通讯使用jquery.livefilter.js
<script> // Reading DATA from JSON
$(document).ready(function(){
$.getJSON("accounts.json", function(data){
$.each(data, function(key, value){
$("#main_list").append(
buildRow(value.name
,value.number
,value.city,value.amount,value.currency,value.rate)
);
});
});
});
</script>
<script>
$(function(){
$('#livefilter-list').liveFilter('#livefilter-input', 'li', {
filterChildSelector: 'a'
});
});
</script>
<script> // Making divs from JSON
function buildRow(a,b,c,d,e,f){
return '<ul id="livefilter-list"><div class="deposit-small-block first-block size-small-block tt" onclick="view(\'t1\'); return false">\
<div class="button_block">\
<div class="div-for-button">\
<input type="radio" name="on">\
</div>\
</div>\
<div class="deposit-form-block-name">\
<div class="deposit-form-block-name-first white-text"><name><li>'+a+'</li></name></div>\
<div class="deposit-form-block-name-second white-text"><number><li>'+b+'</li></number></div>\
<div class="deposit-form-block-name-third white-text"><city>'+c+'</city></div>\
</div>\
<div class="deposit-form-block-sum">\
<div class="deposit-form-block-sum-text white-text">\
<amount>'+d+'</amount><br><currency>'+e+'</currency>\
</div>\
</div>\
<div class="deposit-form-block-perc">\
<div class="deposit-form-block-sum-text white-text"><rate>'+f+'</rate></div>\
</div>\
</div>\
</ul>'
}
</script>
有人可以告诉我问题出在哪里
这是我的rar文件(html,css,js,json)
最佳答案
忘记liveFilter.js ...
您的HTML太复杂了。
我为您制作了一个非常小的脚本。...为您的网页定制。
怎么运行的:
在input
事件上,隐藏所有行。
然后在<name>
,<number>
和<city>
内容内搜索输入的值...对于每一行,使用JavaScript方法.indexOf()
。
如果找到了搜索词,则必须显示该行。
// Custom search
$("#livefilter-input").on("input",function(){
//console.log("Searching...");
// Set ALL rows to display none.
$(".deposit-small-block").css("display","none");
// Loop to check the content of all custom tags: <name> <number> and <city>
$(".tt").find(".deposit-form-block-name .white-text").children().each(function(){
// If a matching text is found within name, account # or city
if( $(this).html().indexOf( $("#livefilter-input").val() ) != -1 ){
//console.log("FOUND a match!");
// Set this row to display block.
$(this).closest(".deposit-small-block").css("display","block");
}
});
});
将其放在
$.getJSON
函数正下方的文档准备包装中。Live link!
编辑:
对于不区分大小写的搜索:
只需一行即可更改:
if( $(this).html().toLowerCase().indexOf( $("#livefilter-input").val().toLowerCase() ) != -1 ){