我正试图从Github gists中的gists列表中删除用户名和/值,问题是没有可用的类/id或/值选择器。
javascript - 使用CSS或Javascript从Github Gist列表中删除/(textnode)-LMLPHP
下面是指向Github Gists页面和JSFiddle的HTML和链接:

<div class="d-inline-block">
    <span>
        <a data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=167012" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self"
            href="/hanachin">hanachin</a>
        /
        <a href="/hanachin/2060751fca3444922386879ac666541e">
            <strong class="css-truncate-target">file0.txt</strong>
        </a>
    </span>
    <div class="text-gray" style="font-size:11px;">
        Last active
        <time-ago datetime="2019-03-08T08:24:35Z">Mar 8, 2019</time-ago>
    </div>
    <span class="f6 text-gray">
        Ruby 2.7 ref:
        <a href="https://qiita.com/hanachin_/items/1aa1ba38a87dee91aed6" rel="nofollow">https://qiita.com/hanachin_/items/1aa1ba38a87dee91aed6</a>

    </span>
</div>

List of Github Gists
DEMO on JSFiddle
我可以删除图标和用户名,代码如下:
[data-hovercard-type="user"] {
display:none;
}

[data-hovercard-type="user"] img {
display:none;
}

但是/没有任何类,并且似乎是一个节点/#textnode?
我怎样才能得到这个?

最佳答案

据我所知,文本节点没有CSS选择器。但要隐藏/,可以将其font-size设置为0px
所以一个CSS解决方案(尽管不是最好的,因为我们依赖于dom结构不改变)

.gist-snippet-meta .d-inline-block > span:first-of-type {
    font-size: 0px;
}

.gist-snippet-meta .d-inline-block > span:first-of-type > a:last-of-type {
    /* Reset font size back ot what it was before we set it to 0 on the parent */
    font-size: 14px;
}

另一个选择是使用Javascript,
这个问题是您需要等待DOM加载。因此,在一段很短的时间内,您的更改将不会应用。
此外,您仍然依赖文件名作为父容器中的最后一个锚定元素,除非您使用Regex获取gist url(牺牲一些性能),或者您知道用户名
如果用户名保持不变
Array.from(document.querySelector([data-hovercard-type="user"])).forEach( e => {
    var parent = e.parentElement;
    parent.innerHTML = parent.querySelector('a[href*="hanachin/"]').outerHTML;
});

10-06 00:31