Javascript / Jquery:如何提醒包含我的搜索的标签文本?

时间:2015-07-03 14:17:20

标签: javascript jquery contains textmatching

您好我已经搜索过并发现了不同的东西,并且有更紧密的联系,但是我还没有能够为我遇到的问题设计并创建一个可行的解决方案:< / p>

要点:

由于我的要求,我希望以特定方式创建视图。目前正在考虑使用自我实现的Treeview样式 - 我现在不希望使用任何其他插件或预先制作的视图,因为正如您可以通过底部附带的JS小提琴演示看到的,我自己可以做到这一点。

手头的问题:

这可能是愚蠢的简单或直截了当,如果是这样,请原谅我的无能,但问题出现在标签上 - 这些标签之间有文字如下:

<ul><checkbox class="collapsible" /><label>Value 1</label>...<ul>

现在我检索这个值没有问题 - 因为它们的列表中有很多(每个选项一个)。但最后问题的基础是将这些与我的搜索输入相匹配。虽然我已经使用了非常明显且通用的每个循环,但它实际上与“输入”匹配时存在问题。 - 我的搜索输入变量 - 以及标签的文本在一起 - 因此它不会提醒正确的值,并且当有4个值匹配时,有时可以提醒所有15个值...

任何帮助都会非常感激 - 请随意使用任何树视图代码,它与选择框一起非常好用。

旁注

在我的实际视图中,这些复选框将使用对象类与标签名称相关联以填充值。我也想要,不是真的警告匹配的标签,而是突出它们 - 所以如果有人可以提供帮助或建议任何好的东西 - 不是关键问题。 (对不起,我知道这对你没有帮助或用处,但我想知道我提醒你注意这些标签的原因。)

MY JS FIDDLE DEMO - TREEVIEW - 编辑:这是我需要的答案(我将把它留在这里,任何其他人都想使用它),完全由Radu Andrei提供答案

编辑:除了标签文本与搜索文本匹配这一事实外,我不打算根据任何标准提醒。

2 个答案:

答案 0 :(得分:1)

尝试如小提琴

所示

FIDDLE

我刚刚使用以下

更新了您的搜索功能
$("#search").on("click", function() {
    $("label").each(function(i,v){

        if($(this).text().indexOf($("#search-criteria").val())>0){
        alert($(this).text());
        }
    });

});

它会在每个标签文本中找到搜索字符串,并在找到时显示警告。

答案 1 :(得分:1)

问题的答案可以在小提琴中找到 - &gt; https://jsfiddle.net/mLbhLh89/11/ .