我有这个html。

<a class="link" href="www.website.com?id=233253">test1</a>
<a class="link" href="www.website.com?id=456456">test2</a>

如何通过使用 href 属性和最后一个数字 (233253) 来隐藏这些链接之一,以隐藏具有此 href 属性和类“link”的链接?

这不是一个有效的代码,只是我为了更好地解释它而整理的代码。getElementsByTagName('a').class('link').href="*233253"

更新:不幸的是它必须是纯 JavaScript,不使用库,并且它必须在 IE6 上工作。

更新2:我无权访问 html

有帮助吗?

解决方案

<html>
<head>
<script type="text/javascript">

function hideLinks(className, ids) {
    var links = document.getElementsByTagName("a");
    var max   = links.length;

    for (var i=0; i<max; i++) {
        var link   = new RegExp("(\s*)"+ className +"(\s*)");
        var isLink = link.test(links[i].className);

        if (isLink) {
            for (var j=0; j<ids.length; j++) {
                var regexp = new RegExp(ids[j] + "<*>quot;);
                var hasId  = regexp.test(links[i].href);

                if (hasId) {
                    links[i].style.display = "none";
                }
            }
        }
    }
}

window.onload = function() {
    hideLinks("link", [233253]);
}
</script>
</head>
<body>

<a class="link" href="www.website.com?id=233253">test1</a>
<a class="link" href="www.website.com?id=456456">test2</a>


</body>
</html>

编辑:我在阅读了关于在功能中封装功能的评论后发布了新版本。这个应该和以前的版本一样好。

其他提示

使用jQuery:

$("a.link[href$='233253']").hide();

$ =属性选择器匹配所选属性以给定值结束的所有元素。

[编辑]:代码有些草率,现在应该可以使用了。包括拆分方法(见注释)。

循环遍历a元素,检查href并应用隐藏。像这样:

var refs = document.getElementsByTagName('a');
for (var i=0;i<refs.length;i++) {
       if (
             refs[i].href &&
             refs[i].href.replace(/(\d+$)/,'$1').match('[your value to match]')
          ) {
           refs[i].className = refs[i].className.replace(/link/i,'');
           refs[i].style.display = 'none';
       }
}

OR

for (var i=0;i<refs.length;i++) {
   var hs = refs[i].href.split(/=/)[1];
   if (  hs.match([your value to match]) ) {
       refs[i].className = refs[i].className.replace(/link/i,'');
       refs[i].style.display = 'none';
   }
}

没有冒犯,但创建循环对我来说似乎是一种解决方法。如果您可以在链接中添加唯一ID,这显然是首选方法。

之后你可以使用'getElementById'来设置一个不同的类来隐藏特定的链接。

一个链接与另一个链接有何区别?如果您知道服务器端的情况,请添加适当的类名,这些类名将以静态方式从 CSS 中隐藏。

动态确定需要隐藏的内容将需要您动态生成 JavaScript 代码片段,除非您在 HTML 中渲染它。

更新: 如果您无权访问生成的 HTML,那么我的帖子对您​​没有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top