Javascript jQuery:hide.parent如果子对象具有HTML数字范围样式值?
我正在使用一个名为的Greasemonkey脚本,它在YouTube上的每个视频下都放置了一个栏,显示它的收视率、喜欢的、不喜欢的等等。这非常有用,但我想更进一步。子元素/内部元素: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%”属性,即该条上的每个视频的随机数字百分比值。我
<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()