You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JS、CSS实现点击按钮后修改文本为与点击前不同的样式

实现方法

你要实现点击按钮后文本变色的效果,只需要在修改p标签内容的同时,为它设置对应颜色样式即可,以下是两种可行的实现方案:

方案1:直接修改行内样式

直接在点击事件里同时修改p标签的内容和颜色属性,代码示例如下:

<!DOCTYPE html>
<html>
<head>
<style>
button {
  border: 1px solid black;
  color: white;
  background-color: black;
  padding: 10px 20px;
  font-size: 15px;
  cursor: pointer;
  transition-duration: .5s;
}
button:hover {
  background-color: blue;
}
p {
  color: blue;
  font-size: 20px;
}
</style>
</head>
<body>
  <p id="demo">Hello everyone! I will get changed after being clicked :)</p>
  <button onClick='
    const demoEle = document.getElementById("demo");
    demoEle.innerHTML = "I appear after clicking the button :P";
    demoEle.style.color = "green";
  ' class="xx">Click</button>
</body>
</html>

方案2:通过CSS类控制样式(更推荐)

提前在CSS里定义好点击后的样式类,点击时给p标签添加对应类即可,后续要调整样式只需要修改CSS代码,维护性更强:

<!DOCTYPE html>
<html>
<head>
<style>
button {
  border: 1px solid black;
  color: white;
  background-color: black;
  padding: 10px 20px;
  font-size: 15px;
  cursor: pointer;
  transition-duration: .5s;
}
button:hover {
  background-color: blue;
}
p {
  color: blue;
  font-size: 20px;
}
/* 新增点击后的样式类 */
p.clicked {
  color: green;
}
</style>
</head>
<body>
  <p id="demo">Hello everyone! I will get changed after being clicked :)</p>
  <button onClick='
    const demoEle = document.getElementById("demo");
    demoEle.innerHTML = "I appear after clicking the button :P";
    demoEle.classList.add("clicked");
  ' class="xx">Click</button>
</body>
</html>

错误原因说明

你之前写的innerHTML(id="xx")是错误语法:

  • innerHTML是DOM元素的属性,不是可以传递参数的方法,直接赋值即可修改元素内部内容
  • 不需要为修改后的内容额外新增id,直接操作原来的#demo元素的样式就可以实现需求

内容的提问来源于stack exchange,提问作者pr0grammar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 09:09:00