我想构建一个可以通过多个参数查询的对象。我想到的方法是将数据存储在具有数据属性的范围内,并使用jquery进行“搜索”,但我不喜欢这样。
为了快速演示,我将“数据”保存如下:
<span data-color="red blue" data-name="bill" data-value="47"></span>
<span data-color="blue green white" data-name="jane" data-value="13"></span>
<span data-color="red" data-name="mary jack" data-value="35"></span>
<span data-color="green" data-name="bill" data-value="43"></span>
<span data-color="white" data-name="steve" data-value="123"></span>
因此,如果我想将所有值与颜色“红色”匹配,我可以这样做:
$("span[data-color~='red']").each(...);
如果我想匹配所有的名字“bill”和颜色“green”,我会这样搜索
$("span[data-color~='green'][data-name~='bill']").each(...);
虽然这感觉有点聪明,但也有点黑客,用CSS选择器将javascript欺骗到查询中。有没有更好的方法可以存储和访问数据?请求可能很多,所以我希望它快速,而不是通过HTTP请求来查询数据服务器端。在我的情况下,可能有数百个条目需要搜索(我不喜欢CSS选择器路由的另一个原因)。
谢谢!