0

特定のチェックボックスを選択し、mysql_fetch_array 内の div にハイライト css を配置する際に問題があります

これが私のコードです

$count=1;
$query = mysql_query('SELECT * FROM thread');
while($row = mysql_fetch_array($query))
{
  echo "<div class='row".$count."'><input type='checkebox' class='chk_box".$count."'> ".$row['title']."</div>";
  $count++; 
}

<script>
 var count= "<?php echo $count?>";
 for(var y=1;y<=count;y++){ 
$('.chk_box'+y).click(function() {
  if(this.checked) {
    $('.row'+y).addClass('backcolor');
  }
  else{
    $('.row'+y).removeClass('backcolor');
  }
 });
        }
</script>
4

1 に答える 1

1

いくつかのタイプミスを修正し、DOM 対応の機能を追加し、jQuery を少し変更しました。

$count=1;
$query = mysql_query('SELECT * FROM thread');
while($row = mysql_fetch_array($query)) {
   echo "<div class='row".$count."'><input type='checkbox' class='chk_box".$count."'> ".$row['title']."</div>";
   $count++; 
}

<script type="text/javascript">
$(function() {
    $('[class^="chk_box"]').on('click', function() {
        $(this).closest('div').toggleClass('backcolor', this.checked);
    });
});
</script>​​​​​​​​​​

補足として、for ループ内にイベント ハンドラーをアタッチすることは、通常、あまり良い考えではありません。

于 2012-12-11T11:02:22.017 に答える