如何在页面上的所有超链接上调用函数?

时间:2014-11-29 18:14:52

标签: javascript hyperlink

我有一个包含多个超链接的网页。他们都有href#”。它们是动态生成的。如何点击任何一个函数时如何调用函数?我希望保留默认的超链接操作。

3 个答案:

答案 0 :(得分:0)

使用event delegation

window.onload = function () {
  document.body.onclick = function (e) {
    var target = e.target,  
        isLink = target.tagName.toLowerCase() === 'a';

    if (isLink && target.getAttribute('href') === '#') {
      lickFun(e); 
    }
  };

  function lickFun(e) {
      console.log('this is link');
      console.log('href equals #');         
  }
}

Example

答案 1 :(得分:0)

这很容易就可以用简单的方法完成。香草JavaScript。这是怎么回事。

  1. 使用document.querySelectorAll("a[href='#']选择href为&{34; #"。

  2. 的所有链接
  3. 使用for循环遍历所有链接。

  4. 为所有链接添加事件侦听器。就像这样(此代码段包含动态生成的链接):

  5. 
    
    document.body.innerHTML = '<a href="#">Click me to call a function.</a><br/>' +
    '<a href="#">Click me to call the same function.<\/a><br/>' +
    '<a href="#">Click me to call the same function.<\/a><br/>' +
    '<a href="#">Click me to call the same function.<\/a><br/>' +
    '<a href="#">Click me to call the same function.<\/a><br/>' +
    '<a href="http://www.cnn.com">My "href" is not "#".<\/a><br/>' +
    '<a href="http://espn.go.com">Neither is mine.<\/a>'
    
    var linkListener = document.querySelectorAll("a[href='#']");
    
    for (i=0;i<linkListener.length;i++){
      linkListener[i].addEventListener("click", linkFunction);
      }
    
    function linkFunction(){
      
      alert("You clicked a link with an \"href\" of \"#\".");
      
      }
    &#13;
    &#13;
    &#13;

    点击任何href的&{34; #&#34;将致电linkFunction

答案 2 :(得分:-1)

如果您使用的是jquery,可以这样做:

<a href="http://google.com">google</a>
<a href="#">test1</a>
<a href="#">test2</a>
<a href="#">test3</a>
<script>
        $('a[href="#"]').bind('click',function(){
            alert("Test");
        })
</script>