2017-05-09 56 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 **每週**。我認爲它應該分配到一些行。 –

回答

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被解僱。

+0

所以如果我把退出()在PHP的結束然後運行JS它應該工作?編輯:只是試圖沒有骰子....有沒有辦法阻止JS運行? –

+0

退出PHP進程只會終止請求併發送響應。你想要做的是使用在文檔準備就緒時觸發的回調。 –

0

可以改變的jQuery這樣的代碼:

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

這樣的代碼是跑的時候準備好文檔和DOM已全面建成。

相關問題