2014-08-27 40 views
1

我開發了代碼,用於檢測用戶何時單擊表格中的某個單元格,然後使用爲該單元格設置的bgColor。使用Javascript檢測點擊多個表格

我大部分都在努力實現工作,我一直在堅持如何讓它檢測多個表中的點擊,而不是一個。我需要使用多個表格,但是我不能讓它適用於所有表格,只是colorchartX表格。因此,此頁面上的其他表格在單擊單元格時不應該執行任何操作。

所以在下面的代碼中,我有我想要的colorchart1工作,我怎麼也得到colorchart2來檢測其單元格之一,然後提供該單元格的bgColor?

function getVal(e) { 
    var targ; 
    if (!e) var e = window.event; 
    if (e.target) targ = e.target; 
    else if (e.srcElement) targ = e.srcElement; 
    if (targ.nodeType == 3) // defeat Safari bug 
     targ = targ.parentNode; 

    var colorSelected = targ.attributes.bgcolor.value; 
    alert(colorSelected); 
} 

onload = function() { 
    var t = document.getElementById("colorchart1").getElementsByTagName("td"); 
    for (var i = 0; i < t.length; i++) 
     t[i].onclick = getVal; 
} 


<table id="colorchart1"> 
<tr> 
<td bgColor="#F8E0E0"></td><td bgColor="#F8ECE0"></td><td bgColor="#F7F8E0"></td><td bgColor="#ECF8E0"></td> 
<td bgColor="#E0F8E0"></td><td bgColor="#E0F8EC"></td><td bgColor="#E0F8F7"></td><td bgColor="#E0ECF8"></td><td bgColor="#E0E0F8"></td> 
</tr><tr> 
<td bgColor="#F5A9A9"></td><td bgColor="#F5D0A9"></td><td bgColor="#F2F5A9"></td><td bgColor="#D0F5A9"></td> 
<td bgColor="#A9F5A9"></td><td bgColor="#A9F5D0"></td><td bgColor="#A9F5F2"></td><td bgColor="#A9D0F5"></td><td bgColor="#A9A9F5"></td> 
</tr> 
<table> 

<table id="colorchart2"> 
<tr> 
<td bgColor="#F8E0E0"></td><td bgColor="#F8ECE0"></td><td bgColor="#F7F8E0"></td><td bgColor="#ECF8E0"></td> 
<td bgColor="#E0F8E0"></td><td bgColor="#E0F8EC"></td><td bgColor="#E0F8F7"></td><td bgColor="#E0ECF8"></td><td bgColor="#E0E0F8"></td> 
</tr><tr> 
<td bgColor="#F5A9A9"></td><td bgColor="#F5D0A9"></td><td bgColor="#F2F5A9"></td><td bgColor="#D0F5A9"></td> 
<td bgColor="#A9F5A9"></td><td bgColor="#A9F5D0"></td><td bgColor="#A9F5F2"></td><td bgColor="#A9D0F5"></td><td bgColor="#A9A9F5"></td> 
</tr> 
<table> 

回答

1
var ids = ['colorchart1', 'colorchart2']; 
for(var j = 0; j < ids.length; j++) { 
var t = document.getElementById(ids[j]).getElementsByTagName("td"); 
for (var i = 0; i < t.length; i++) 
    t[i].onclick = getVal; 
} 

或 - ( 'colorchart')使用jQuery,並給所有的表一 「colorchart」 類,然後使用$選擇。