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

JavaScript点击按钮修改多个li颜色仅首个元素生效问题排查

错误原因

document.querySelector() 本身的逻辑是只返回和传入选择器匹配的第一个DOM元素,你写的选择器虽然覆盖了三个li的id,但最终只会选中第一个id为one的li,剩余两个li没有被选中,所以不会变色。

修复方法

使用document.querySelectorAll()替换原来的querySelector,这个方法会返回所有匹配选择器的元素集合,遍历集合给每个元素设置黑色即可。

修正后的完整代码:

<html>  
 <body>
   <ul>
      <li id="one">Item1</li>
      <li id="two">Item2</li>
      <li id="three">Item3</li>
   </ul>
   <button onclick="changecolor()">Black</button>
 </body>
</html>

<script>
function changecolor() {
  const allTargetLi = document.querySelectorAll("#one, #two, #three");
  allTargetLi.forEach(li => {
    li.style.color = "black";
  })
}
</script>

可选简化方案

如果你的需求是修改列表下所有li的颜色,不需要限定特定id,完全可以不用逐个写id选择器,直接用层级选择器即可:

function changecolor() {
  document.querySelectorAll("ul li").forEach(li => {
    li.style.color = "black";
  })
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:42:21