我如何使用jQuery的.find方法和正则表达式作为参数?

时间:2011-08-31 19:33:54

标签: javascript jquery xml regex search

我有一个xml,我想搜索“相似”的结果,类似于LIKE在SQL中的作用。 我想过做$(xml).find('regexHere')之类的事,但我不知道怎么做。 如果这不是最好的方法,你能推荐别的吗?我需要搜索的数据在节点的参数范围内。

修改

$(xml).find('[cityName=Rio de Janeiro]')给了我正在搜索的节点,因为它完全是相同的字符串。但是,如果我搜索Rio我没有得到任何结果,即使 Rio de Janeiro和 Rio Claro的节点都有字符串我是寻找。

我没有运气就尝试使用$(xml).find('[cityName|="Rio"]'),但没有一个结果出现,但如果我改为Rio de Janeiro,我会得到我所需要的。

2 个答案:

答案 0 :(得分:3)

要查找具有与特定正则表达式匹配的属性的所有元素,您可以使用.find("*")选择所有元素,然后.filter(...)删除任何不匹配的元素:

例如,要查找message属性包含“hello world”的所有节点:

var elements = $(xml).find("*").filter(function() {
    return /[Hh]ello [Ww]orld/.test($(this).attr("message"));
});

答案 1 :(得分:2)

您可以使用逗号分隔选择器,也可以使用.contents().filter()