通过ul搜索> li> ul> li元素,如果它们包含输入str,则突出显示它们

时间:2014-07-24 14:32:42

标签: jquery list loops search

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

修改

在此处转发我的问题:

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

2 个答案:

答案 0 :(得分: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");

如果有人对这些方法的性能细节很方便,我将非常感谢编辑!

答案 1 :(得分:1)

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

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