根据子元素的值隐藏父元素

时间:2018-03-13 13:22:20

标签: javascript jquery

我想创建一个过滤函数,它根据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>

等等

1 个答案:

答案 0 :(得分:0)

我认为这应该可以解决问题:

JQuery代码:

function eraseThis() {
    var tagList = $(".rating");
    tagList.each(function(){

        var $this = $(this);
        if (parseInt( $this.text() ) < 5) {
            $this.parent().hide();
        }

    });
}

Html代码:

<div class="movie">
 <p class="rating">2</p>
</div>

<div class="movie">
 <p class="rating">9</p>
</div>

这是完整的代码:JSFiddle