如何用 css 选择器选择长度为 10 的 class - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shonky
V2EX    CSS

何用 css 选择器选择长度为 10 的 class

  •  
  •   shonky 2018-05-04 10:08:45 +08:00 via Android 5546 次点击
    这是一个创建于 2726 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在弄去广告操作,但基础不怎么行,基本是看网上教程弄的,按网上说的.class~div 并不能去掉广告,我就想能不能通过选择长为 10 的类来去掉广告。 求大佬指点。

    52 条回复    2018-05-06 00:13:22 +08:00
    shonky
        1
    shonky  
    OP
       2018-05-04 10:10:31 +08:00 via Android
    old9
        2
    old9  
       2018-05-04 10:16:07 +08:00
    看起来都是 mYbKXYDA 前缀?
    如果确认都是这个前缀的话可以用属性选择符 [attr^=value],[class^=mYbKXYDA] {display:none;}

    不过去广告还是交给 adblock ublock 之类浏览器扩展好了
    shonky
        3
    shonky  
    OP
       2018-05-04 10:19:39 +08:00 via Android
    @old9 不是的,刷新下,类名都会变的。
    手机上使用,类似 pwa 那样。因为会在手机上看电视电影什么的。电脑上就会用油猴了。
    hourann
        4
    hourann  
       2018-05-04 10:26:53 +08:00 via iPhone
    一个思路是先选择所有有 class 属性的标签,然后遍历,筛选出长度为 10 的,然后再做一次 select
    rabbbit
        5
    rabbbit  
       2018-05-04 10:27:19 +08:00
    那个广告的高是不变的吗?试试
    *>img[height^="84.375"]
    或者按网址
    *>img[src^="https://jbokhm.cn"]
    shonky
        6
    shonky  
    OP
       2018-05-04 10:36:06 +08:00 via Android
    @rabbbit http://www.metvb.com
    就这个网站。
    大佬,按你的打了一次。试了。没用呢。

    var style=".wrap~div,*>img[height^="84.375"]{display:none !important}";

    var myStyleElement=document.createElement("style");
    myStyleElement.innerHTML=style;
    document.querySelector("head").appendChild(myStyleElement);
    document.querySelector("html").appendChild(myStyleElement);
    shonky
        7
    shonky  
    OP
       2018-05-04 10:36:32 +08:00 via Android
    @hourann 谢谢回复,不过现在还是小白,基本操作不会。
    whypool
        8
    whypool  
       2018-05-04 10:38:39 +08:00
    去掉页面的 iframe 能干掉很多广告
    把下面代码保存为书签,有广告的时候点一下书签就行

    Javascript:(function(){%20var%20im%20=%20document.getElementsByTagName('iframe');%20if(im%20&&%20im.length){%20for(var%20i%20=%200;i<im.length;i++){%20var%20p%20=%20im[i];%20p.parentNode.removeChild(p);%20}%20}%20})();
    shonky
        9
    shonky  
    OP
       2018-05-04 10:41:28 +08:00 via Android
    @whypool 是这样的。我姐喜欢上这网站看电视,我就想用 fapp 做一个 app 出来,把广告都弄掉。
    shonky
        10
    shonky  
    OP
       2018-05-04 10:42:47 +08:00 via Android
    @whypool 复制粘贴了一波,对这网站还是没用。不过还是谢谢大佬了。
    Carseason
        11
    Carseason  
       2018-05-04 10:51:58 +08:00 via iPhone
    根据固定字符来判断,比如你图片的 class=abcd***,则使用[class^="abcd"]来匹配 class 类以 abcd 开头的类,或[class$="abcd"]来匹配以 abcd 结尾的,又或者[class*="abcs"]来匹配 class 里包含 abcd 的元素
    如果是一个无固定值蠢随机的你则要用另外的元素来判断位置,或者找出 js 来屏蔽
    yu099
        12
    yu099  
       2018-05-04 10:54:05 +08:00 via Android
    cnbeta 也这样的,去不掉
    rabbbit
        13
    rabbbit  
       2018-05-04 10:55:42 +08:00
    试试
    var a = document.querySelector('a>img[src^="https://jbokhm.cn"],a>img[src^="http://dvei.fendoutime.com"]')
    a.parentNode.parentNode.removeChild(a.parentNode)
    shonky
        14
    shonky  
    OP
       2018-05-04 10:57:13 +08:00 via Android
    @Carseason 是随机的。知道 js 了,怎么屏蔽。位置也知道,一直弄.class~div,我把所有的 class 都放了进去,也没用。
    shonky
        15
    shonky  
    OP
       2018-05-04 10:57:39 +08:00 via Android
    @yu099 我成功弄掉了另一网站类似的广告。
    shonky
        16
    shonky  
    OP
       2018-05-04 10:57:54 +08:00 via Android
    @rabbbit 好的
    Carseason
        17
    Carseason  
       2018-05-04 11:01:57 +08:00 via iPhone
    @shonky 如果只有一个随机类,没别的固定类的话你就得修改 js 了,如果是单独的 js 生成的可以选择屏蔽 js,如果不是可以用位置来确定,比如前一个类为 class a,则用.a>*之类的写法来屏蔽,再或者是看插件是否支持正则的使用,通过正则修改 js 的参数等等,具体看你插件的写法
    shonky
        18
    shonky  
    OP
       2018-05-04 11:05:45 +08:00 via Android
    @rabbbit 大佬,成功去了首页的广告,但会留下一个关闭的小图标。不过没关系。还有在点进去,又会出现在中间部位的广告,如图 https://i.loli.net/2018/05/04/5aebcd6b8b585.png

    ,还是按大佬这 js,改动下就可以吗?
    shonky
        19
    shonky  
    OP
       2018-05-04 11:07:03 +08:00 via Android
    @Carseason Fusion APP,我用的是这个来做 app 的。不是弄插件。谢谢大佬指点。
    shonky
        20
    shonky  
    OP
       2018-05-04 11:10:52 +08:00 via Android
    @rabbbit https://i.loli.net/2018/05/04/5aebcf032b164.png
    大佬,到播放界面 ,上面广告,还有中间广告又都出来了。
    rabbbit
        21
    rabbbit  
       2018-05-04 11:15:40 +08:00
    中间的
    document.querySelector('div[class^="hengfu"]').style.display = "none"
    rabbbit
        22
    rabbbit  
       2018-05-04 11:21:18 +08:00
    上边的,不过这样性能堪忧啊
    var list = Array.prototype.slice.call(document.all)
    list.forEach(
    function(i){
    if (i.className.length === 10) {i.parentNode.removeChild(i)}
    }
    )
    shonky
        23
    shonky  
    OP
       2018-05-04 11:22:12 +08:00 via Android
    @rabbbit 大佬首页弄掉了一个上面关闭图标在右方的广告,现在又出来一个关闭图标在左边的广告。也是在上方。在刷新下,又出现个在下方的广告。
    Delete Link

    https://i.loli.net/2018/05/04/5aebd1aba4807.png

    大佬,有空在回复。不急。
    谢谢大佬了。
    shonky
        24
    shonky  
    OP
       2018-05-04 11:22:36 +08:00 via Android
    @rabbbit 性能是什么意思,会卡吗
    Carseason
        25
    Carseason  
       2018-05-04 11:25:30 +08:00 via iPhone
    我看了你要屏蔽的网站,都是用 js 生成的新元素,那么你就不要用 div 类来屏蔽,直接找出脚本把网站屏蔽掉就可以了
    rabbbit
        26
    rabbbit  
       2018-05-04 11:27:12 +08:00
    刷新时可能会卡吧,下边那个广告我看不到,是不是电信运行商插的.
    shonky
        27
    shonky  
    OP
       2018-05-04 11:27:24 +08:00 via Android
    @Carseason 找脚本,找到了。不会处理。
    大佬,我还处于边看教程边上路的时候。
    shonky
        28
    shonky  
    OP
       2018-05-04 11:28:09 +08:00 via Android
    @rabbbit 是屏蔽了上面广告,多刷新了几次,有概率出现。大佬。
    DT27
        29
    DT27  
       2018-05-04 11:30:03 +08:00
    表示 uBlock Origin 打开这网站看不到有广告~
    shonky
        30
    shonky  
    OP
       2018-05-04 11:30:07 +08:00 via Android
    @rabbbit 又来了上面的,关闭图标位置变了。https://i.loli.net/2018/05/04/5aebd392570dc.png
    shonky
        31
    shonky  
    OP
       2018-05-04 11:30:26 +08:00 via Android
    @DT27 我姐用手机看。
    Carseason
        32
    Carseason  
       2018-05-04 11:30:52 +08:00 via iPhone
    ||metvb.com/js/gwunggou/*.js
    一条 js 屏蔽就足够了,具体写法自己参考下软件的写法
    shonky
        33
    shonky  
    OP
       2018-05-04 11:33:18 +08:00 via Android
    @Carseason *代表的是 var 变量的名字吗
    rabbbit
        34
    rabbbit  
       2018-05-04 11:35:56 +08:00
    learnshare
        35
    learnshare  
       2018-05-04 11:36:59 +08:00
    禁用 JS
    Carseason
        36
    Carseason  
       2018-05-04 11:37:09 +08:00 via iPhone
    @shonky 通配符
    lrz0lrz
        37
    lrz0lrz  
       2018-05-04 12:09:32 +08:00
    页面结构固定吗?
    为什么不用 div:nth-child(1) 这些选择器呢?
    shonky
        38
    shonky  
    OP
       2018-05-04 12:33:06 +08:00 via Android
    @lrz0lrz 好的,试试。
    shonky
        39
    shonky  
    OP
       2018-05-04 12:33:24 +08:00 via Android
    @rabbbit 具体怎么操作呢,大佬
    meszyouh
        40
    meszyouh  
       2018-05-04 13:15:53 +08:00
    ```
    (function() {
    var children = $("body").children(":not(.wrap)"),
    el;
    var parser = /[a-zA-Z\d]{3,}/,
    reg;
    var filter = function(el, reg, level, counter) {
    if (level > 4) {
    return;
    }
    el.children().each(function() {
    var t = $(this);
    var id = el.attr("id"),
    className = el.attr("class").split(/\s+/);
    if (reg.test(id)) {
    counter.num++;
    }
    if (reg.test(className)) {
    counter.num++;
    }
    filter(t, reg, level + 1, counter);
    });
    if (counter.num >= 4 && level === 1) {
    el.remove();
    $("head").append(
    "<style>#" +
    el.attr("id") +
    "{position:static;height:0;transform:scale(0,0);overflow:hidden;}</style>"
    );
    }
    };
    children.each(function() {
    el = $(this);
    var id = el.attr("id"),
    match1,
    match2,
    className = el.attr("class");
    var counter = {
    num: 0
    };
    match1 = id.match(parser);
    match2 = className.match(parser);

    if (match1 || match2) {
    match1 = match1 || [""];
    match2 = match2 || [""];
    var str = match1[0].length > match2[0].length ? match1[0] : match2[0];
    reg = new RegExp(str, "i");

    filter(el, reg, 1, counter);
    }
    });
    $('[class*="hengfu"]').remove();
    })();
    ```
    试试这个
    shonky
        41
    shonky  
    OP
       2018-05-04 13:28:23 +08:00 via Android
    @meszyouh 不明觉深。
    好的,大佬 。
    shonky
        42
    shonky  
    OP
       2018-05-04 13:30:52 +08:00 via Android
    @meszyouh 大佬 不行。一个广告都没去掉。
    shonky
        43
    shonky  
    OP
       2018-05-04 13:33:09 +08:00 via Android
    @meszyouh 大佬 ,去除前后三个点。广告没有了。谢谢大佬 。
    SingeeKing
        44
    SingeeKing  
    PRO
       2018-05-04 13:34:23 +08:00
    @shonky #43 那三个点是 Markdown 标记……
    3a3Mp112
        45
    3a3Mp112  
       2018-05-04 13:36:59 +08:00
    能不能直接把网址发出来呀。
    shonky
        46
    shonky  
    OP
       2018-05-04 13:38:23 +08:00 via Android
    @3a3Mp112 发了啊。www.metvb.com
    shonky
        47
    shonky  
    OP
       2018-05-04 13:38:58 +08:00 via Android
    @SingeeKing 有点注释的感觉。
    3a3Mp112
        48
    3a3Mp112  
       2018-05-04 13:41:32 +08:00
    @shonky
    订阅 easylist china 规则即可。
    leaves7i
        49
    leaves7i  
       2018-05-04 23:52:42 +08:00 via Android
    给你个思路。看下父元素和子元素。一般来说子元素不会那么随机。然后找位置、大小等等属性抓取元素
    shonky
        50
    shonky  
    OP
       2018-05-06 00:11:41 +08:00 via Android
    @3a3Mp112 好的
    shonky
        51
    shonky  
    OP
       2018-05-06 00:11:47 +08:00 via Android
    @leaves7i 谢谢
    shonky
        52
    shonky  
    OP
       2018-05-06 00:13:22 +08:00 via Android
    @3a3Mp112 手机上也可以这样?全能吗
    关于     帮助文档     自助推广系统     博客     API     FAQ   &bsp; Solana     6089 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 02:05 PVG 10:05 LAX 19:05 JFK 22:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86