隐藏具有特定类和属性的链接

时间:2009-03-05 09:16:21

标签: javascript html getelementbyid

我有这个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属性和类“链接”的链接?

这不是一个有效的代码,只是我把它放在一起更好地解释它。 的getElementsByTagName( 'A')。类( '链接')。HREF = “* 233253”

更新: 不幸的是,它必须是纯粹的javascript,而不是使用库,它必须在IE6上工作。

UPDATE2: 我无法访问html

5 个答案:

答案 0 :(得分:4)

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

循环遍历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';
   }
}

答案 1 :(得分:4)

使用jQuery:

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

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

答案 2 :(得分:3)

<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] + "$");
                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>

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:-1)

一条链接与另一条链接的区别是什么?如果您知道在服务器端然后添加适当的类名,那么将以静态方式从CSS中隐藏它们。

动态确定需要隐藏的内容需要您动态生成javascript片段,除非您在HTML中进行渲染。

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