0

我对 Jquery 有一个小问题,我想过滤我的购物车上的“项目”,这段代码实际上是过滤的,但它只显示“li”而不是他们的子项目,我的意思是它隐藏了所有内容,只显示实际元素

我希望它在不隐藏其“子”元素的情况下进行过滤, 在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

                <div class="section_wrapper">
                    <ul id="prod_list">
                        <li>                                  
                            <a href="#" >
                                <div>
                                    <h5>Asus Crossfire MotherBoard LGA 775</h5>
                                    <div>
                                        <ul>
                                            <li>64 bits</li>
                                            <li>Super</li>
                                        </ul>
                                    </div>
                                </div>
                            </a>

                        </li>   

jQuery代码:

function search_filter() {
    $('#busqueda').click(function() {
        if ($(this).val() == "Buscar...") {
            $(this).val("");
        }
    }).blur(function() {
        if ($(this).val() == "") {
            $(this).val("Buscar...");
        }
    }).on('input', function() {
        busca = $(this).val();

        $("#prod_list li").each(function() {
            var elem = $(this).children('a');
            var reg = new RegExp(busca, "i");
            if (reg.test(elem.text())) {
                if ($(this).is(':hidden')) {
                    $(this).fadeIn('fast').css("display", "block");                    
                }

            } else {

                $(this).fadeOut('fast');
            }
        });
    });
}  
4

1 回答 1

1

这可能是因为在 #prod_list 你有 li > a > div > div > ul > li

最后的 li 失败了

if (reg.test(elem.text())) {

淡出也是如此。你可以通过这样做来解决这个问题

$("#prod_list > ul > li").each(function() {

反而。

于 2013-11-04T18:23:07.447 回答