我有一个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
,我会得到我所需要的。
答案 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()
。