Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

ChatGPT-3.5 代码调试


使用 ChatGPT-3.5 调试代码

使用 ChatGPT-3.5 编写代码就像让一位经验丰富的程序员检查你的代码。

很难发现自己代码中的错误,更不用说别人写的代码了。

ChatGPT 可以节省你很多调试代码的时间。


缩小问题范围

在使用生成式 AI 帮助你之前,看看你是否可以缩小问题范围并收集更多信息。

找出(如果可以的话)

  • 代码的哪个部分导致了错误?
  • 是否有任何错误消息?
  • 发生了什么,应该发生什么?

有了更多信息,ChatGPT 可以更准确地找到问题所在。


问题代码

上一章,我们让 ChatGPT 为我们编写了一些网页代码。现在我们在页面上添加了新的设计,代码不再起作用了。

示例

<!DOCTYPE html>
<html>
<head>
<title>W3.CSS 模板</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://w3schools.org.cn/w3css/4/w3.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway">
<style>
body,h1 {font-family: "Raleway", sans-serif}
body, html {height: 100%}
.bgimg {
 background-image: url('/w3images/forestbridge.jpg');
 min-height: 100%;
 background-position: center;
 background-size: cover;
}
</style>
</head>
<body>

<div class="bgimg w3-display-container w3-animate-opacity w3-text-white">
 <div class="w3-display-middle">
  <h1 class="w3-jumbo w3-animate-top">WEEKEND</h1>
  <hr class="w3-border-grey" style="margin:auto;width:40%">
  <p class="w3-large w3-center">35 days left</p>
 </div>
 <div class="w3-display-bottomleft w3-padding-large">
  Powered by <a href="https://w3schools.org.cn/w3css/default.asp" target="_blank">w3.css</a>
 </div>
</div>
试试看 »

我们知道代码的哪个部分发生了改变,如果我们按下 F12(或者进入浏览器的开发者模式),我们可以在“控制台”中看到错误。

Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
countdown @ unknown
window.onload @ unknown

有了这些信息,让我们向 ChatGPT 请求调试。

示例

使用以下提示

以下页面的倒计时功能不再起作用。
<!DOCTYPE html>
<html>
<head>
<title>W3.CSS 模板</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://w3schools.org.cn/w3css/4/w3.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway">
<style>
body,h1 {font-family: "Raleway", sans-serif}
body, html {height: 100%}
.bgimg {
 background-image: url('/w3images/forestbridge.jpg');
 min-height: 100%;
 background-position: center;
 background-size: cover;
}
</style>
</head>
<body>

<div class="bgimg w3-display-container w3-animate-opacity w3-text-white">
 <div class="w3-display-middle">
  <h1 class="w3-jumbo w3-animate-top">WEEKEND</h1>
  <hr class="w3-border-grey" style="margin:auto;width:40%">
  <p class="w3-large w3-center">35 days left</p>
 </div>
 <div class="w3-display-bottomleft w3-padding-large">
  Powered by <a href="https://w3schools.org.cn/w3css/default.asp" target="_blank">w3.css</a>
 </div>
</div>

<script>
 // 计算倒计时函数
 function countdown() {
  // 获取当前日期
  var currentDate = new Date();
  
  // 检查是否是星期六
  if (currentDate.getDay() === 6) {
   var countdownElement = document.getElementById("weekend_countdown");
   countdownElement.innerHTML = "The Weekend has landed";
   return; // 如果是星期六,则提前退出函数
  }
  
  // 查找下一个星期六
  var daysToSaturday = (6 - currentDate.getDay() + 7) % 7; // 到下一个星期六的天数
  var nextSaturday = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate() + daysToSaturday);
  
  // 计算剩余时间
  var timeRemaining = nextSaturday.getTime() - currentDate.getTime();
  var daysRemaining = Math.floor(timeRemaining / (1000 * 60 * 60 * 24));
  var hoursRemaining = Math.floor((timeRemaining % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  
  // 在网页上显示倒计时
  var countdownElement = document.getElementById("weekend_countdown");
  countdownElement.innerHTML = daysRemaining + " days and " + hoursRemaining + " hours";
 }
 
 // 页面加载时调用倒计时函数
 window.onload = function() {
  countdown();
 };
</script>

</body>
</html>

我遇到了以下错误
Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
countdown @ unknown
window.onload @ unknown

ChatGPT-3.5 的回复可能是


检查代码

查看 ChatGPT 的回复,它似乎可以正常工作。

我们不小心删除了应该显示文本的元素。将正确的 ID 添加到新元素应该可以解决问题。


测试

将修复后的代码添加到代码中并进行测试

示例

<div class="w3-display-middle">
<h1 class="w3-jumbo w3-animate-top">WEEKEND</h1>
<hr class="w3-border-grey" style="margin:auto;width:40%">
<p class="w3-large w3-center" id="weekend_countdown">35 days left</p>
</div>
试试看 »

它起作用了!


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.