← 代码俱乐部 · 工匠层 03 / 8
按钮被点了会怎样?JavaScript 让网页"活"过来。
<body> 里加:
<button onclick="hello()">点我</button> <p id="msg"></p>
<button onclick="hello()">点我</button> = 做一个按钮,当被点击时调用 hello 函数。<p id="msg"></p> = 做一个空的段落,给它一个名字 "msg"(后面 JavaScript 会用这个名字往里面填内容)。
👉 试改:把"点我"改成"开始"或"按一下",看按钮文字怎么变。
<script>
function hello() {
document.getElementById('msg').textContent = '你点了我!';
}
</script><script> 标签里面是 JavaScript。function hello() { ... } = 定义一个叫 "hello" 的函数(就是"一组命令")。document.getElementById('msg') = 在网页里找到 id 是 "msg" 的那个元素。.textContent = '你点了我!' = 把这个元素的内容改成这段字。
💡 这就是"交互"的核心:用户点按钮(HTML)→ 触发函数(JavaScript)→ 改变网页内容(DOM)。三步一轮回。
👉 试改:把 '你点了我!' 改成你想说的任何话。保存刷新,点按钮试试。
<button onclick="hello()">点我</button>
<p id="msg"></p>
<script>
function hello() {
document.getElementById('msg').textContent = '你点了我!';
}
</script>
'你点了我!' 成你想说的话。改 '点我' 成你想要的按钮文字。一个改进版,加了多个按钮和更好的样式:
<!DOCTYPE html>
<html>
<head>
<style>
body {
font-family: sans-serif;
padding: 20px;
transition: background 0.5s;
}
button {
padding: 12px 24px;
margin: 5px;
font-size: 16px;
cursor: pointer;
border: none;
border-radius: 5px;
background: #667eea;
color: white;
}
button:hover {
background: #764ba2;
}
</style>
</head>
<body>
<h1>选一个你喜欢的颜色</h1>
<p>点下面的按钮,背景会变颜色。</p>
<button onclick="document.body.style.background = '#ff6b6b';">红</button>
<button onclick="document.body.style.background = '#ffd93d';">黄</button>
<button onclick="document.body.style.background = '#6bcf7f';">绿</button>
<button onclick="document.body.style.background = '#4ecdc4';">青</button>
<script>
// JavaScript 让网页"活"过来
// onclick 就是"点击后要干什么"的规则
</script>
</body>
</html>
关键:onclick="..." 就是 JavaScript。当用户点按钮时,document.body.style.background 就改变网页的背景颜色。
一个功能完整的计数器,加了样式和减法功能。注意代码结构 —— 每个功能都有自己的函数:
<!DOCTYPE html>
<html>
<head>
<style>
body {
font-family: sans-serif;
padding: 20px;
text-align: center;
background: #f5f5f5;
}
#count-display {
font-size: 64px;
color: #667eea;
margin: 30px 0;
font-weight: bold;
}
button {
padding: 12px 24px;
font-size: 16px;
margin: 5px;
border: none;
border-radius: 5px;
background: #667eea;
color: white;
cursor: pointer;
}
button:hover {
background: #764ba2;
}
</style>
</head>
<body>
<h1>我的计数器</h1>
<div id="count-display">0</div>
<button onclick="add()">+1</button>
<button onclick="subtract()">-1</button>
<button onclick="reset()">重置</button>
<script>
let count = 0;
function add() {
count = count + 1;
update();
}
function subtract() {
count = count - 1;
update();
}
function reset() {
count = 0;
update();
}
function update() {
document.getElementById('count-display').innerText = count;
}
</script>
</body>
</html>
进阶:注意我把"更新显示"提取出来写成一个单独的 update() 函数。这样代码不重复,更好维护。这就是"代码重构"。
代码已经给你写好了。核心是这一行生成随机颜色的 JavaScript:
let color = '#' + Math.floor(Math.random() * 16777215).toString(16).padStart(6, '0');
让我们拆解一下:
这里用到了很多 JavaScript 的高级概念,慢慢理解也没关系。关键是每点一下按钮,就能看到新颜色。
HTML 给"长什么样"。CSS 给"好不好看"。JavaScript 给"会不会反应"。三个一起,是真正的网页。