在jquery中搜索脚本

时间:2014-05-21 08:21:56

标签: javascript jquery asp.net-mvc-4

以下链接帮助我在Jquery中获得搜索功能:

Live search in jQuery

但我面临以下问题:

在上面的帖子中提到的脚本帮助我进行树搜索但是我正面临问题,因为这个脚本淡出了父匹配节点的子元素。

问题陈述:

  • * parent one

  • * child one

  • * child two

  • * parent two

  • *孩子三

在上述情况下,如果我将搜索" 2" ,那么它将完全显示父母一个(父节点+儿童)和父母两个但不是它的孩子即孩子三

我希望你能解决我的问题吗?

请参阅我用于搜索功能的以下脚本:

$(document).ready(function(){
$("#filter").keyup(function(){

    // Retrieve the input field text and reset the count to zero
    var filter = $(this).val(), count = 0;
    if(!filter){ // hide is no text
        $(".commentlist li").hide();
        return;
    }

    var regex = new RegExp(filter, "i"); // Create a regex variable outside the loop statement

    // Loop through the comment list
    $(".commentlist li").each(function(){

        // If the list item does not contain the text phrase fade it out
        if ($(this).text().search(regex) < 0) { // use the variable here
            $(this).hide(); //**here I want to put condition that 
//checks for parent element and if its parent then 

//it should not fadeout the its child element** 
        // Show the list item if the phrase matches and increase the count by 1
        } else {
            $(this).show();
            count++;
        }
    });

    // Update the count
    var numberItems = count;
    $("#filter-count").text("Number of Comments = " + count);
});

});

1 个答案:

答案 0 :(得分:0)

在.hide()之前插入这行代码符合我的要求。

if ($(this).parent().is(":visible")) {
                    $(this).hide();
                }
                else {
                    $(this).show();
                }