2012-07-06 19 views
1

我試圖選擇頁面中的所有<a>標籤,並且甚至向他們註冊onclick如何選擇所有<a>標籤並註冊onclick事件?

我的代碼:

document.getElementsByTagName('a').onclick = show; 


var show = function(){ 
    alert('hahahha'); 
} 

它不工作,我的大腦是炒了。有任何想法嗎?非常感謝。

回答

2

你是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。如果需要迭代前進,請將數組長度存儲在變量中以提高效率。

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;  
} 
2

document.getElementsByTagName('a')因此返回數組試試這個:

var arr = document.getElementsByTagName('a'); 
    for(var key in arr){ 
     arr[key].onclick = show; 
    } 

沒有測試它,但它應該工作

1

爲什麼不使用jQuery,這將是在javascript簡單的解決方案。

您可以使用如下

$("a").on("click", function(event){ 
    alert('hahahha'); 
}); 

參考this文檔。你可以使用Jquery 1.7以上。

的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和它提供

1

是的,我們可以同時使用Java腳本,以及jQuery的解決上述問題這種綁定麻煩最簡單的方法。

但是,首先我們必須包含jquery.js javascript文件(最好使用最新版本)。

的jQuery:

$(function(){ 
    $("a").click(function(e){ 
      alert("Now Show function has been binded...hahahhaha..!"); 
     }); 
}); 
相關問題