【问题标题】:search through ul > li > ul > li elements and highlight them if they contain an input str [closed]搜索 ul > li > ul > li 元素并突出显示它们是否包含输入 str [关闭]
【发布时间】:2014-09-16 04:18:13
【问题描述】:

基本上我有一个由列表列表组织的侧边栏,我只需要搜索第二个 order 的包含。 我不知道如何让我的循环遍历所有这些列表。

编辑

在这里转贴我的问题:

Getting the jquery right to do a search in lists and sublists

【问题讨论】:

  • 如果他们包含 what
  • 你能更具体地说明你想要什么吗?
  • 请分享您的代码
  • 因为你转发的问题包含更多信息,我投票关闭这个问题作为转发的重复,stackoverflow.com/questions/24952587/…

标签: jquery list loops search


【解决方案1】:
function GetItemsContaining(elemContainer, sTargetString)
{
    // filter down by custom function
    return elemContainer.filter(function(index, elem)
    {
       return $(elem).text().indexOf(sTargetString) > -1;
    });

    // find them directly using only selectors
    return elemContainer.find("li:contains(" + sTargetString + ")");

    // or find the li in the container and filter down
    return elemContainer.find("li").filter(":contains(" + sTargetString + ")");

    // or find descendants that match the selector from the container
    return elemContainer.has("li:contains(" + sTargetString + ")");
}

使用示例:

var Items = GetItemsContaining($("#sidebar"), "Test String - Is case sensitive")
Items.addClasS("Highlight");

如果有人手边有这些方法的性能细节,我将不胜感激!

【讨论】:

    【解决方案2】:

    您可以为此使用:contains() 选择器。然后你不必循环遍历每个元素来突出显示它们,

    $("ul li:contains('Your text')").css("color","red");
    

    【讨论】:

    • 我喜欢它,它又好又短。我想知道那个选择器的性能是什么......很好的答案!
    猜你喜欢
    • 2021-11-14
    • 2011-08-06
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2020-04-20
    • 1970-01-01
    相关资源
    最近更新 更多