jQuery:如果子项具有 HTML 数值范围样式值,则隐藏 .parent?

jQuery: hide .parent if child has HTML numerical range style value?

我正在使用名为 Youtube Video Ratings Bar with Power Meter 的 Greasemonkey 脚本,它会在 YouTube 上的每个视频下方放置一个栏,显示其评分、喜欢、不喜欢等。这非常有用,但我想更进一步。 Child/inner 元素:

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

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

<li class="yt-shelf-grid-item">

现在,我之前问过一个关于某种相似性的问题。如果我问的的代码能用,那就太棒了。感谢您抽出宝贵的时间。


工作版本:https://whosebug.com/revisions/40065508/3

这应该可以满足您的要求:

// ==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

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

无论等级如何,每个能量条的宽度都一样吗?我不确定,想知道实际宽度是否会因不同的评级而改变。

栏本身不包含在父元素中吗?那是有道理的。如果不是,那么计算出宽度的 70% 应该很简单:

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