Javascript遍历所有asp:页面上的超链接控件,并隐藏它们

时间:2010-09-21 18:56:42

标签: .net javascript asp.net

我有一个母版页面,其中包含一个带有asp的DIV:超链接控件作为网站的菜单。

当我在某个页面上时(document.title ='Certain Page'),我想要javascript,它将遍历页面上的所有asp:超链接控件并隐藏它们(即设置为不可见)。我知道我可以用更少的努力在服务器端执行此操作,但我宁愿通过javascript执行此操作。

3 个答案:

答案 0 :(得分:1)

您需要使用asp:Hyperlink来装饰class,这些asp:Hyperlinks可用于在客户端识别它们(您也可以从控件ID生成中推断出这一点,但是会更容易出错,特别是因为ASP.NET 4.0提供了一些替代方案。)

这些链接有一个共同/一致的类,那么你只需要让Javascript选择该类并隐藏它们。根据您选择的客户端库(或缺少它),这可能就像一个简单的jQuery行(假设您的class="aspLink"$('.aspLink').hide();):{{1}}

答案 1 :(得分:1)

确定什么是asp:超链接而不是常规超链接<a>标记的唯一方法是在所有asp:超链接标记中添加一个类。然后你可以使用像

这样的jquery
$('.AspLink').remove();

如果您有其他方法来确定它们是唯一的asp:超链接标记,您可以类似地使用其他一些jquery表达式。因此,如果你有<div>并且知道div中的所有链接都是asp:超链接,你可以使用

$('#MyMenu a').remove();

答案 2 :(得分:1)

为外部DIV分配ID,然后使用以下内容:

var childs = document.getElementById("outerDiv").childNodes;
for(var i=0; i<childs.length;i++) {
   if(childs[i].tagName == "a") childs[i].style.display = "none";
}

但实际上你可以在母版页的代码隐藏中做同样的事情。