将DIV ID中的所有链接设置为false

时间:2013-11-24 09:28:15

标签: javascript

我有以下内容:

<div id="songs">
<ul>
<li> <a href="(a real link)">song 1</a></li>
<li> <a href="(a real link)">song 2</a></li>
</ul>
</div>

我希望div#songs中的所有链接都自动设置为使用javascript返回false(这样只有在禁用javascript时链接才会打开);我不想在每个链接上添加onclick="return false"

我对Javascript一点都不强,所以任何帮助都非常感谢。谢谢。

通过这个^^的ETA我的意思是除非你列出整个代码,否则我不会知道你在说什么。对此感到抱歉,再次感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

只需向所有链接添加一个事件监听器,如下所示:

var root = document.getElementById('songs'),
links = root.getElementsByTagName('a'),
doNothing = function(e) {
    e.preventDefault();
};

for (var i = 0; i < links.length; ++i) {
    links[i].addEventListener('click', doNothing, false);
}

这适用于IE&gt; = 9;对于旧版本,请使用attachEvent代替addEventListener或修改onclick属性,后者更为普遍理解。

答案 1 :(得分:0)

假设您的目标是现代浏览器(兼容ES5)

1)获取歌曲中的所有链接(“a”标签)

var links = document.querySelectorAll('songs a'),
function noop(e) { e.preventDefault() },
forEach=Array.prototype.forEach;

2.a)如果您只打算禁用点击

forEach.call(links,function(theLink){theLink.onclick=noop});

2.b)如果您打算添加其他点击事件处理程序,那么

forEach.call(links,function(theLink){theLink.addEventListener('click', noop, false);});