如果子元素有HTML数值范围样式值,则隐藏.parent

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

本文关键字:样式 隐藏 parent 范围 如果 元素 HTML      更新时间:2023-09-26

我使用的是Greasemonkey脚本,名为Youtube视频评级栏与功率表,它在Youtube上的每个视频下放置一个栏,显示它的评级,喜欢,不喜欢等。这是非常有用的,但我想把它更进一步。孩子/内部元素:

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

可以看到,子元素class="powerBar"是视频受欢迎程度的主要决定因素。它有一个style="width: 26.1181%"属性,这是一个随机的数值百分比值。我很好奇如何隐藏父元素,如果内部类/子。powerBar,小于其样式宽度的75%。父元素:

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

我之前问了一个关于相似性的问题。如果可以使用我之前问的问题中的代码,那就太棒了。谢谢您在百忙之中抽出时间。


工作版本:https://stackoverflow.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);