我有一个关于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 ){

09-20 09:09