Javascript 动态树中的节点过滤

Javascript 动态树中的节点过滤,javascript,dynatree,jquery-dynatree,Javascript,Dynatree,Jquery Dynatree,我只需要掌握dynatree、自定义样式和ajax调用来填充树。所有的工作都很出色 但是,我需要向节点添加过滤功能,如下所示: 不幸的是,这是为fancytree而不是dynatree设计的。我花了大约5个小时试图让我的代码使用fancytree而不是dynatree,我感到非常沮丧,因为它根本不起作用,错误消息乱七八糟,文档令人震惊,互联网上几乎没有关于它的宝贵信息 我宁愿坚持使用dynatree,这很有效。我有没有办法在dynatree中实现fancytree示例中显示的过滤器?我太喜欢ja

我只需要掌握dynatree、自定义样式和ajax调用来填充树。所有的工作都很出色

但是,我需要向节点添加过滤功能,如下所示:

不幸的是,这是为fancytree而不是dynatree设计的。我花了大约5个小时试图让我的代码使用fancytree而不是dynatree,我感到非常沮丧,因为它根本不起作用,错误消息乱七八糟,文档令人震惊,互联网上几乎没有关于它的宝贵信息

我宁愿坚持使用dynatree,这很有效。我有没有办法在dynatree中实现fancytree示例中显示的过滤器?我太喜欢javascript了,无法理解代码要做什么。

试试下面的内容:

文本框HTML:

 Filter : <input type="text" name="filter" id="filter" />
      $('#filter').keypress(function() {
            if($(this).val().length >=2 )
                {
                    var $input = $(this);
                    $(".dynatree-title").each(function(){
                        if($(this).text().toLowerCase().indexOf($input.val().toLowerCase()) >= 0) {
                            $(this).html("<font color='blue'>"+$(this).text() +"</font>");
                            alert($(this).text());
                        }
                    });
                }
        });
过滤器:
JavaScript:

 Filter : <input type="text" name="filter" id="filter" />
      $('#filter').keypress(function() {
            if($(this).val().length >=2 )
                {
                    var $input = $(this);
                    $(".dynatree-title").each(function(){
                        if($(this).text().toLowerCase().indexOf($input.val().toLowerCase()) >= 0) {
                            $(this).html("<font color='blue'>"+$(this).text() +"</font>");
                            alert($(this).text());
                        }
                    });
                }
        });
$('#过滤器')。按键(函数(){
如果($(this).val().length>=2)
{
var$input=$(此);
$(“.dynatree title”)。每个(函数(){
if($(this).text().toLowerCase().indexOf($input.val().toLowerCase())>=0){
$(this.html(“+$(this.text()+”);
警报($(this.text());
}
});
}
});
尝试以下操作:

文本框HTML:

 Filter : <input type="text" name="filter" id="filter" />
      $('#filter').keypress(function() {
            if($(this).val().length >=2 )
                {
                    var $input = $(this);
                    $(".dynatree-title").each(function(){
                        if($(this).text().toLowerCase().indexOf($input.val().toLowerCase()) >= 0) {
                            $(this).html("<font color='blue'>"+$(this).text() +"</font>");
                            alert($(this).text());
                        }
                    });
                }
        });
过滤器:
JavaScript:

 Filter : <input type="text" name="filter" id="filter" />
      $('#filter').keypress(function() {
            if($(this).val().length >=2 )
                {
                    var $input = $(this);
                    $(".dynatree-title").each(function(){
                        if($(this).text().toLowerCase().indexOf($input.val().toLowerCase()) >= 0) {
                            $(this).html("<font color='blue'>"+$(this).text() +"</font>");
                            alert($(this).text());
                        }
                    });
                }
        });
$('#过滤器')。按键(函数(){
如果($(this).val().length>=2)
{
var$input=$(此);
$(“.dynatree title”)。每个(函数(){
if($(this).text().toLowerCase().indexOf($input.val().toLowerCase())>=0){
$(this.html(“+$(this.text()+”);
警报($(this.text());
}
});
}
});

谢谢Minesh。这并不完全是我所需要的,但它让我走上了正确的轨道来整理它,所以我感谢你花时间发布这篇文章。我有这个问题。当输入字符串时,文件夹会被过滤,但当我尝试展开过滤结果时,文件夹不会被过滤掉。还有人注意到这种奇怪的行为吗?谢谢Minesh。这并不完全是我所需要的,但它让我走上了正确的轨道来整理它,所以我感谢你花时间发布这篇文章。我有这个问题。当输入字符串时,文件夹会被过滤,但当我尝试展开过滤结果时,文件夹不会被过滤掉。还有人注意到这种奇怪的行为吗?如果你想看看,还有一个类似的问题。如果您想查看,也有一个类似的问题。