jQuery: hide .parent, если у ребенка есть значение стиля числового диапазона HTML?

Я использую скрипт Greasemonkey под названием Youtube Video Ratings Bar с Power Meter , он помещает панель под каждое видео на YouTube, которое отображает его рейтинги, нравится, не нравится и т. Д. Это очень полезно, однако я хотел бы сделать это еще дальше , Детский / внутренний элемент:

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

Как вы можете видеть, дочерний элемент class = "powerBar" является основной определяющей функцией популярности видео. Он имеет атрибут style = "width: 26.1181%" , случайное числовое процентное значение для каждого видео, в которое включена панель. Мне любопытно, как вы можете скрыть родительский элемент, если внутренний класс / child .powerBar имеет менее 75% его ширины стиля. Родительский элемент:

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

Теперь я ранее задавал вопрос, имеющий несколько сходство. Если бы код из предыдущего вопроса, который я попросил, можно использовать, это было бы самым удивительным. Спасибо, что нашли время в твоем дне.


рабочая версия: https://stackoverflow.com/revisions/40065508/3

javascript,jquery,greasemonkey,

-1

Ответов: 2


рабочая версия: https://stackoverflow.com/revisions/40065508/3

2-1
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 загружает информацию об асинхронности.


0

Является ли ширина каждой панели питания одинаковой, независимо от ее рейтинга? Я не уверен, интересно, изменилась ли фактическая ширина для разных рейтингов.

Сама ли панель не содержится в родительском элементе? Это имело бы смысл. Если нет, то это должно быть достаточно простым, чтобы выяснить, что такое 70% вашей ширины:

var powerBarWidth = parseInt($(".powerBar").css("width").replace('px', ''));
var powerBarPercentage = ((powerBarWidth / 100) * 70);
JavaScript, JQuery, Greasemonkey,
Похожие вопросы