我有很多tds,每个td都有id。当id是变量时,它失败。当id确认(如A12)时,内容会显示。然后我尝试'#A'+ i + j,但结果总是#A921。代码是:
<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。我的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 :(得分:0)
当然会是#A921,因为当你点击任何td的时候基于你的代码,你的i,j变量已经达到了9和21,基本上你不能使用for循环来解决这个问题。
相反,你可以创建一个这样的函数:
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>'