2017-07-28 15 views
0

我有很多tds,每個td都有id。當id是變量時,它失敗了。當id被確認時(如A12),內容會顯示。然後我試着'#A'+ i + j,但結果總是#A921。代碼是:如何正確指定td的id? jquery javascript

<script> 
$(document).ready(function(){ 
for(var i=1;i<9;i++) 
for(var j=1;j<21;j++) 
{ 
$('#A'+i+j).click(function(){ 
alert('#A'+i+j); 
$('#content').css('display','block'); 
$('#selectID').val('#A'+i+j); 
    }); 
} 
}); 
</script> 

誰能幫幫我? A + I + J應該是A11 A12 ........ A820.My PHP代碼:

<?php 
function output($a,$b,$color) 
{ 
if($b) 
{ 
    echo '<td style="background-color:'.$color.'" id="'.$a.'">'.$b.'</td>'; 
} 
else 
{ 
    echo '<td>'."N".'</td>'; 
} 
} 

function cabinetcolor($a) 
{ 
    if($a=="G") 
    { 
      $color=green; 
    } 
    else if($a=="GR") 
    { 
      $color=gray; 
    } 
    else if($a=="P") 
    { 
      $color=purple; 
    } 
    return $color; 
} 

while($k<9) 
{ 
    echo '<tr>'; 
    echo '<td width="50px" cellpadding="10px">A'.$k.'</td>'; 
    for($j=1;$j<21;$j++) 
    { 
     $sql = "select * from hpc where cabinetNum='A".$k."".$j."'"; 
     $res = $conn->query($sql); 
     $row = $res->fetch(PDO::FETCH_NUM); 
     $color=cabinetcolor($row[45]); 
     output($row[1],$row[2],$color); 
    } 
    } 
?> 
+0

份額一些HTML會更好 – Mark

+0

@馬克,html代碼已被添加 – john

+0

這個問題與'i'和'j'如何在回調中作用域有關。注意他們總是有他們最後的價值 – user3080953

回答

0
courseit的

將#A921,因爲在你的代碼庫,當你點擊任何TD,你我,j變量已經達到9和21,基本上你不能用循環來解決這個問題。

相反,你可以創建這樣一個功能:

function doSomething(el){ 
    alert(el.id); 
    $('#content').css('display','block'); 
    $('#selectID').val(el.id); 
} 

,並在你的HTML,調用這個函數在你這樣的td標籤:

echo '<td onclick="doSomething(this)" style="background-color:'.$color.'" id="'.$a.'">'.$b.'</td>' 
+0

Thankyou,它工作正常 – john