我如何使用jQuery的.find方法和正则表达式作为参数?
我有一个xml,我想搜索“相似”的结果,类似于LIKE
在SQL中所做的。 我想过做类似$(xml).find('regexHere')
事情,但我不知道该怎么做。 如果那不是最好的方法,你能推荐别的吗? 我需要搜索的数据在节点的参数范围内。
编辑
$(xml).find('[cityName=Rio de Janeiro]')
给出了我正在搜索的节点,因为它是完全相同的字符串。 但是,如果我搜索Rio
我没有得到任何结果,即使里约热内卢和里约克拉罗的节点有我正在寻找的字符串。
我尝试使用$(xml).find('[cityName|="Rio"]')
没有运气,没有一个结果出现,但如果我改为Rio de Janeiro
我得到我所需要的。
要查找具有与某个正则表达式匹配的属性的所有元素,可以使用.find("*")
选择所有元素,然后使用.filter(...)
删除任何不匹配的元素:
例如,要查找其message
属性包含“hello world”的所有节点:
var elements = $(xml).find("*").filter(function() { return /[Hh]ello [Ww]orld/.test($(this).attr("message")); });
您可以使用逗号分隔选择器,也可以使用.contents()
和.filter()
。