隐藏/动态显示锚点

时间:2010-12-09 11:42:58

标签: javascript html

我有一个锚标记。我想隐藏/动态显示它。由于某种原因,我不能把它放在div / span中。我该怎么办?

1 个答案:

答案 0 :(得分:9)

对锚标记引用DOM元素后,请执行以下操作:

// Hide
element.style.display = "none";

// Show again
element.style.display = "";

有几种方法可以获得该参考。例如,如果锚点有id,则可以使用getElementById

HTML:

<a href='whatever' id='foo'>Whatever</a>

JavaScript的:

element = document.getElementById('foo');

如果锚没有ID,并且您不想因任何原因添加一个ID,则可以使用其他信息来标识正确的元素。使用jQueryPrototypeYUIClosureany of several others等库可以轻松完成此操作,这样您就可以使用CSS选择器找到有问题的锚点。如果没有库,您必须依赖少量良好支持的DOM函数或处理浏览器变体,这是库帮助您避免的。

以下是循环浏览页面上所有锚点并根据其href隐藏一个锚点的示例(live copy):

HTML:

<a href='http://stackoverflow.com'>StackOverflow</a>
<a href='http://superuser.com'>SuperUser</a>
<a href='http://serverfault.com'>ServerFault</a>

JavaScript的:

var links, index, link;

links = document.getElementsByTagName('a');
for (index = 0; index < links.length; ++index) {
  link = links[index];
  if (link.href.indexOf('superuser') >= 0) {
    link.style.display = "none";
    break;
  }
}

如果使用库,这会变得非常容易。例如,这是它的jQuery版本(live copy):

$('a[href*=superuser]').hide();

这是Prototype版本(live copy):

$$('a[href*=superuser]').invoke('hide');