搜索过滤器应该使用getElementsByClassName吗?

时间:2013-08-05 19:21:49

标签: javascript

我有115个div,它们是120x120,每个都有不同的背景图像。每个div都有多个类名,我只使用getElementsByClassName用于搜索栏。例如,想想115个人,但能够在搜索中写“女性”将导致隐藏所有男性并且只显示女性。

这是做错搜索过滤器的方法吗?我将div设置为display = "none"以隐藏它们,如果它们是搜索内容的一部分,则设置为block。我只是担心使用多个空类名作为搜索过滤器。这样做是否可以,或者是否有一种更方便的方式专门用于这样的事情?

2 个答案:

答案 0 :(得分:1)

我认为这是一种巧妙的做法,但这取决于它。它会留在115“物品”还是你打算增加更多?因为如果你计划增加更多,它可能不会很好地扩展。我认为它已经太多了,不是因为搜索方法本身,而是因为你有> 100个隐藏的div,背景图像占用了所有的浏览器资源

可以做的是将您的项目存储在数据库表格中,其中包含背景图片路径的字段和关键字的字段,以及当您执行搜索并仅显示拥有匹配关键字的人,而不是隐藏所有的人。

答案 1 :(得分:1)

你可以使用更多基于数据的方法(我的意思是,它们都是基于数据的...让我们说它更像是一个数据库)通过在115条记录的JavaScript中保存数组。所以你有一个平面文件数据库,实际上。如果你的javascript技能对此有好处,它将有助于使用生成div而不是隐藏它们的方法 - 这将解决Campari提到的资源问题。

它实际上比您当前的解决方案更具可扩展性。首先,您可以将数组保存在单独的.js.ini文档中,以便于维护。