3

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

这是做搜索过滤器的错误方法吗?我将 div 设置display = "none"为隐藏它们以及block它们是否是正在搜索的内容的一部分。我只是担心使用多个空类名作为搜索过滤器。这样做可以吗,还是有更方便的方法专门针对这样的事情?

4

2 回答 2

1

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

可以做的是将您的项目存储在一个数据库表中,其中一个字段用于背景图像路径,一个字段用于关键字,当您执行搜索并显示具有匹配关键字的那些而不是隐藏所有不匹配的不

于 2013-08-05T19:41:20.843 回答
1

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

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

于 2013-08-05T20:06:05.783 回答