Javascript jQuery:hide.parent如果子对象具有HTML数字范围样式值?

Javascript jQuery:hide.parent如果子对象具有HTML数字范围样式值?,javascript,jquery,greasemonkey,Javascript,Jquery,Greasemonkey,我正在使用一个名为的Greasemonkey脚本,它在YouTube上的每个视频下都放置了一个栏,显示它的收视率、喜欢的、不喜欢的等等。这非常有用,但我想更进一步。子元素/内部元素: <div class="powerBar" style="width: 26.1181%;"></div> 如您所见,子元素class=“powerBar”是决定视频受欢迎程度的主要因素。它有一个style=“width:26.1181%”属性,即该条上的每个视频的随机数字百分比值。我

我正在使用一个名为的Greasemonkey脚本,它在YouTube上的每个视频下都放置了一个栏,显示它的收视率、喜欢的、不喜欢的等等。这非常有用,但我想更进一步。子元素/内部元素:

<div class="powerBar" style="width: 26.1181%;"></div>

如您所见,子元素class=“powerBar”是决定视频受欢迎程度的主要因素。它有一个style=“width:26.1181%”属性,即该条上的每个视频的随机数字百分比值。我很好奇,如果内部class/child.powerBar的样式宽度小于其样式宽度的75%,如何隐藏父元素。父元素:

<li class="yt-shelf-grid-item">
  • 我以前问过一个关于相似性的问题。如果我问过的中的代码可以使用,那就太棒了。谢谢你抽出时间在你的一天



    工作版本:

    这应该满足您的要求:

    // ==UserScript==
    // @name        youtube hide powerbar
    // @namespace   hides videos with low popularity
    // @include     *www.youtube.com*
    // @version     1
    // @grant       none
    // @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
    // ==/UserScript==
    
    setInterval(function() {
    
      function getWidthPercent(element) {
        return parseFloat(element.style.width) || 0;
      }
    
      $(".likesBar").each(function() {
        if (getWidthPercent(this) < 88) $(this).closest(".video-list-item").css( "opacity", "0.1" );
      });
    
    }, 2000);
    // requires https://greasyfork.org/en/scripts/2302-youtube-video-ratings-bar-with-power-meter
    
    /==UserScript==
    //@name-youtube-hide-powerbar
    //@namespace隐藏人气较低的视频
    //@include*www.youtube.com*
    //@version 1
    //@grant none
    //@需要http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
    //==/UserScript==
    setInterval(函数(){
    函数getWidthPercent(元素){
    返回parseFloat(element.style.width)| 0;
    }
    $(“.likesBar”).each(函数(){
    if(getWidthPercent(this)<88)$(this).closest(“.video list item”).css(“不透明度”,“0.1”);
    });
    }, 2000);
    //需要https://greasyfork.org/en/scripts/2302-youtube-video-ratings-bar-with-power-meter
    

    定期检查DOM更新的时间间隔,例如使用渐进加载视频功能时,或由于其他Greasemonkey脚本异步加载分级信息。

    无论分级如何,每个电源条的宽度是否相同?我不确定,想知道实际宽度是否会因不同的评级而改变

    条形图本身是否不包含在父元素中?这是有道理的。如果没有,那么应该很简单地计算出70%的宽度:

    var powerBarWidth = parseInt($(".powerBar").css("width").replace('px', ''));
    var powerBarPercentage = ((powerBarWidth / 100) * 70);
    

    不,powerbar在每个视频上都有,并且在每个视频上都不一样,数学计算喜欢、不喜欢、视图等等,如果你愿意,可以自己尝试脚本。这只是一个奇怪的问题,你想检查一个值是否为其自身的70%,也许powerbar是父元素中的一个元素-它的宽度会改变以反映级别或评级-如果是这种情况,那么父元素的宽度才是重要的。抱歉,我只是想弄清楚。powerbar是一个子元素,在我命名的父元素中,如果宽度百分比样式小于X.X%,则隐藏父元素。子powerbar是一个样式宽度随机百分比的元素,我正在玩它,但还没有运气让它工作。
    元素[0]
    应该是
    元素
    ,因为powerbar是一个HTML元素。在
    if
    之后,
    powerbar
    应该是
    $(powerbar)
    ,原因与上面相同。如果需要,可以使用greasemonkey尝试youtube分级栏脚本,目标是完全隐藏在订阅选项卡或主页中列出的视频@mike mccaughan您能提供一个使用JSFIDLE的工作示例吗?它主要起作用,它隐藏了powerbar,而不是主要的父/视频(.yt shelf grid item),所以我不得不加上7.parent()