【发布时间】:2018-03-13 21:44:37
【问题描述】:
我想创建一个过滤函数,它根据 p 标签的值隐藏 div。行为应如下所示:
用户选择一个过滤器,例如>5:
- 循环遍历具有特定类的所有 p-tag
- 如果 p-tag 中的值与过滤器匹配 (>5),则隐藏每个 p-tag 的值与过滤器值不匹配的所有父 div
我的解决方案如下:
function eraseThis() {
counter = 0
tagList = document.getElementsByClassName("rating")
$(".rating").each(function()
{
if (this.innerHTML < 5) {
$(this).parent().hide()
}
counter = counter + 1
});
}
这给了我正在寻找的结果,但我想知道是否有更优雅/更有效的方法来做到这一点?
标记将类似于:
<div class="movie">
<p class="rating"> some value </p>
</div>
<div class="movie">
<p class="rating"> some value </p>
</div>
等等
【问题讨论】:
-
欢迎来到 Stack Overflow!请查看tour,环顾四周,并通读help center,尤其是How do I ask a good question? 在问题中包含您的HTML 结构示例,最好包含minimal reproducible example 来演示问题,最好是可运行一个使用堆栈片段(
[<>]工具栏按钮;here's how to do one)。 -
@AlexYokisama:我怀疑你的意思是
.parents(复数)。 -
@T.J.Crowder,也许吧。这取决于标记,我们在这个问题中看不到。对于最亲近的父母,
.parent()就足够了。 -
@AlexYokisama@T.J.Crowder 谢谢大家,更改了代码并添加了一些关于标记的信息
标签: javascript jquery