如何准确指定td的id? jquery javascript

时间:2017-07-28 01:30:57

标签: javascript php jquery html

我有很多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);
    }
  }
 ?>

1 个答案:

答案 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>'