8797 次
		
6 回答
            4        
        
		
您将onclick属性设置为元素数组,而不是像您需要的那样单独设置每个元素。此外,您show在使用它之后进行定义。
var elts = document.getElementsByTagName('a');
var show = function() { alert('hahahha'); }
for (var i = elts.length - 1; i >= 0; --i) {
    elts[i].onclick = show;
}
向后遍历数组比elts.length每次都测试更有效。如果需要向前迭代,请将数组长度存储在变量中以提高效率。
于 2012-07-06T04:41:02.747   回答
    
    
            3        
        
		
您需要将 onclick 事件<a> tags分别分配给所有事件,如下所示:
var s=document.getElementsByTagName('a');
var show = function(){
   alert('hahahha');
}
for (var i=0;i<s.length;i++)  
{  
 s[i].onclick = show;      
} 
    于 2012-07-06T04:40:23.650   回答
    
    
            2        
        
		
document.getElementsByTagName('a')返回一个数组,因此试试这个:
    var arr = document.getElementsByTagName('a');
    for(var key in arr){
      arr[key].onclick = show;
    }
还没有测试过,但它应该可以工作
于 2012-07-06T04:42:00.843   回答
    
    
            1        
        
		
于 2012-07-06T04:51:39.390   回答
    
    
            1        
        
		
是的,我们可以使用 java 脚本和 jquery 来解决上述问题:
Javascript:
   var aLinks=document.getElementsByTagName('a'); // returns array of all <a> link objects
    //Function to be bind with link object
    var show = function(){
          alert("Now Show function has been binded...hahahhaha..!");
    }
    //Now we have to bind click event with each link object. 
    for(var i=0;i<aLink.length;i++){
       aLinks[i].onclick=show;
    }
将所有链接标签与任何事件绑定的另一种替代方法是使用 jQuery,它为这种绑定问题提供了最简单的方法。
但首先我们必须包含 jquery.js javascript 文件(最好使用最新版本)。
jQuery:
$(function(){
    $("a").click(function(e){
             alert("Now Show function has been binded...hahahhaha..!");
      });
});
    于 2012-07-06T12:49:12.083   回答
    
    
            1        
        
		
由于新的 JS 标准,这可以很容易地完成。我所有的 a 标签都有类导航链接。因此,我将它们全部选中(这给了我一个节点列表)并在它们上运行 forEach 并添加了一个函数,以便在选择其中一个节点时调用。希望这可以帮助!
let navLink = document.querySelectorAll('.nav-link');
const navbar = document.querySelector('#navbarNav');
closeNavBar = () => {
    navbar.classList.remove('show');
};
navLink.forEach((nav) => nav.addEventListener('click', closeNavBar));
    于 2020-03-21T14:21:43.727   回答