2017-05-09 6 views
0

コードをテストすると、静的テーブルを使用して実行している場合は正常に動作します。しかし、私は動的なテーブルを生成している私のページでそれを実行すると何も起こりません。javascriptを使用して動的PHPテーブルからセルをハイライトする

JavaScriptコード

<script type="text/javascript" 
src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script> 

<script type="text/javascript"> 
$('#Weekly td').each(function() { 
if ($(this).text() == 'Yes') { 
    $(this).closest('td').css('background-color', 'yellow'); 
} 
}); 
</script> 

PHPコード

if ($WeeklyResult->num_rows > 0){ 
    echo "<Table id=Weekly>"; 
    $headerRow = TRUE; 
    while ($row = $WeeklyResult->fetch_assoc()){ 
     if($headerRow){ 
      $headerRow = FALSE; 
      echo "<tr>"; 
      foreach (array_keys($row) as $header){ 
       echo"<th>$header</th>"; 

      } 
      echo "</tr>"; 
     } 
     echo "<tr>"; 
     foreach ($row as $value){ 
      echo "<td>$value</td>"; 

     } 
     echo "</tr>"; 
    } 
    echo "</table>"; 

} 
+0

id ** Weekly **を追加した動的生成では、私はそれがある行に割り当てられるべきだと思います。 –

答えて

0

$(document).readyあなたを助けます。これを試してみてください:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#Weekly td').each(function() { 
      if ($(this).text() == 'Yes') { 
       $(this).closest('td').css('background-color', 'yellow'); 
      } 
     }); 
    }); 
</script> 
0

あなたがそれに任意のアクションを実行する前にテーブルが存在している必要があります。 PHPが解釈されてページがレンダリングされた後、jsが起動されていることを確認してください。文書の準備ができているとDOMが完全に構築されたとき、コードが実行される

<script> 
jQuery(function(){ 
    $('#Weekly td').each(function() { 
     if ($(this).text() == 'Yes') { 
      $(this).css('background-color', 'yellow'); 
     } 
    }); 
}); 
</script> 

この方法:

+0

PHPの終わりにexit()を置くとJSが動くはずですか?編集:ちょうどそのダイスを....しようとしている実行中のJSを保持する方法はありますか? –

+0

PHPプロセスを終了すると、要求が終了して応答が送信されます。あなたがしたいと思うのは、ドキュメントの準備が整うと起動するコールバックを使用することです。 –

0

あなたはこのようにjQueryのコードを変更することができます。

関連する問題