1

我不知道该怎么做,但我需要隐藏一个重复(一页 50 次)的 html 字符串,以免在浏览器中显示。

html的违规行是这样的:

<li><a href="actor" class="extLink">Empty</a></li>

我知道这将是一个 hack,但我无法更改此列表内容的来源。

是否有一些javascript代码可以放在我的文档头部来隐藏这个字符串?

非常感谢,达尔。

4

4 回答 4

2

您可以使用 :contains 根据其内容获取元素。

HTML:

<li><a href="actor" class="extLink">Empty</a></li>

jQuery :

$('a:contains("Empty")').css('display', 'none');

示例:http: //jsfiddle.net/9z5du/285

于 2013-07-04T21:16:14.257 回答
1

您可以通过设置隐藏它们而无需任何脚本;

.extLink {
    display: none;
}

无论是否启用 JavaScript,这都将起作用,这意味着它们在文档加载时即使是一闪也不会显示。

如果它特别是actor链接,您也可以针对这些链接 - 或者如果两者都是,您可以让规则涵盖两者。让我知道您的要求是否更具体。

a[href=actor] {
    display: none;
}

如果要根据内容隐藏它们,则需要使用 JavaScript。

var clearEmptyActorLinks = function () {
    var externalLinks = document.getElementsByClassName('extLink');
    for (var i = 0; i < externalLinks.length; i++) {
        if (externalLinks[i].innerHTML === 'Empty') {
            externalLinks[i].parentNode.style.display = 'none';
        }
    }
};
window.onload = clearEmptyActorLinks;

示例:http: //jsfiddle.net/ZnK59/

于 2013-07-04T21:10:41.800 回答
0

像这样?

window.onload = function () {
    var n, hiddens = document.getElementsByClassName('extLink');
    for (n = 0; n < hiddens.length; n++) {
        if (hiddens[n].innerHTML === 'Empty')
            hiddens[n].style.display = 'none';
        }
        if (hiddens[n].href === 'actor') {
            hiddens[n].parentElement.style.display = 'none';
        }
    }
}
于 2013-07-04T21:08:12.790 回答
-1

基于 jQuery:

$(function() {
    var i = 0;
    $('li').each(function() {
       if (i == 0) {continue;i++}
       $(this).remove();
       i++;
    });
});

我不确定你在找什么。删除空标签:

$(function() {
    var i = 0;
    $('li').each(function() {
       if (i == 0) {continue;i++}
       var $obj = $(this);
       if ($obj.find('a').text() == 'Empty') {
          $obj.remove();
       }
       i++;
    });
});
于 2013-07-04T21:08:21.540 回答