jQuery:如果child有HTML数值范围样式值,请隐藏.parent吗?

时间:2016-10-15 23:58:05

标签: javascript jquery greasemonkey

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

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

如您所见,子元素 class =&#34; powerBar&#34; 是视频流行度的主要决定因素。它有一个 style =&#34; width:26.1181%&#34; 属性,这是该栏所在的每个视频的随机数字百分比值。如果内部类/子 .powerBar 的样式宽度小于75%,我很好奇如何隐藏父元素。父元素:

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

现在,我之前曾问过一个有点相似的问题。如果可以使用我提出的 previous question 代码,那将是最棒的。感谢您抽出时间。

工作版:https://stackoverflow.com/revisions/40065508/3

2 个答案:

答案 0 :(得分:0)

这应该做你想要的:

// ==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脚本异步加载评级信息时。

答案 1 :(得分:0)

无论额定值如何,每个电源条的宽度是否相同?我不确定,想知道不同评级的实际宽度是否会发生变化。

条形本身不包含在父元素中吗?这是有道理的。如果没有,那么它应该足够简单,以确定宽度的70%:

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