【发布时间】:2019-01-30 04:22:39
【问题描述】:
我正在使用名为Algolia 的服务,它的工作原理类似于单页搜索设备。当用户输入要搜索的术语时,Algolia 会自动在包含范围内加载子 div,并提供可能的建议。子 div 与 DOM 一起加载,但子 div 的内容会根据用户输入而变化。输入字段中的每一次按键都会更改 div。
找到的记录
如果结果搜索发现了有效记录,则子 div 将包含以下内容:
<span id="algolia-autocomplete-listbox-0">
<div class="aa-dataset-1">
<span class="aa-suggestions" style="display: block;">
<div class="aa-suggestion">
<div class="algolia-result">
<div class="row">
<div class="col nopadding">
<span>Dynamic data has been added</span>
</div>
</div>
</div>
</div>
</span>
</div>
</span>
在上面的示例中,“aa-dataset-1”类是一个包含建议的 div。 “-1”表示 Algolia 将添加的动态 div。这意味着我可以拥有一个动态 div,其类范围为“aa-dataset-1”到“aa-dataset-X”。
没有找到记录
当 Algolia 没有返回任何结果时,包含的 div ("aa-dataset-X") 仍会填充内容。返回零结果的搜索示例如下:
<div class="aa-dataset-1">
<div class="algolia-empty">
<span>No results were found with your current selection.</span>
</div>
</div>
我的问题是具有“algolia-empty”类的 div 仍然显示,即使有一个具有“aa-suggestions”类的子 div。下图显示了找到的单个记录的示例,但仍显示具有“algolia-empty”类的 div
将始终显示“algolia-empty”类,因为 Algolia 以这种方式构建了他们的产品。
问题
我想要做的是将所有子 div 隐藏在“algolia-autocomplete-listbox-0”中除非每个子 div 都有一个“algolia-empty”类。请记住,这是一个单页应用程序。
可以在这里找到一个工作的 JSFiddle:http://jsfiddle.net/jandk4014/8vktn0cu/44/
更新
服务的成功结果应该是什么样的?查看下图。
如果您想查看它的实际效果,请查看上面的 JSFiddle 链接。
【问题讨论】:
-
不是所有孩子都有
algolia-empty的课程时应该出现什么? -
你不能只添加一个 CSS:
.algolia-empty{ display: none;}吗?还是我缺少什么? -
从 Algolia 服务中找到记录时,将填充后续 div 并显示数据。我将修改问题以显示一个示例。
-
对,编辑问题。我建议你把它变小。有很多文字要阅读,不是每个人都有足够的时间来阅读一个问题,所以你可能会失去潜在的帮助者。
-
Showing the class "algolia-empty" will always show because Algolia has built their product that way--我对此有点困惑。官方推荐的使用方法是什么?官方回应将其包含在成功的搜索中是没有意义的。.algolia-emptydiv 默认没有内容吗?
标签: javascript jquery html css algolia