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

jQuery设置选中的course_select前缀复选框字体为红色失效怎么办

问题根因

你编写的代码没有生效是因为:$("input:checkbox[name^='course_select']:checked")选中的是<input>复选框元素本身,表单类的<input>元素的colorCSS属性不会作用到它后面跟随的选项文本上,这些文本是和<input>平级的独立文本节点,不属于<input>的内部内容。
而你测试用的$("*").css('color', 'red')会选中页面所有元素,包括承载这些文本节点的上层父元素(比如<body>),颜色属性可以被子元素/文本节点继承,所以全局生效。


解决方案

方案1:不修改现有HTML结构,直接调整JS逻辑

遍历选中的已勾选复选框,修改它后方相邻的文本节点样式即可:

function AlertFunction() {
  $("input:checkbox[name^='course_select']:checked").each(function() {
    // 把相邻文本节点包裹进span标签后设置颜色
    $(this.nextSibling).wrap('<span></span>').parent().css('color', 'red');
  });
}

方案2:优化HTML结构后实现(更符合规范)

首先给每个复选框加<label>标签包裹住输入框和选项文本:

<script src="http://code.jquery.com/jquery-3.6.0.min.js"></script>
<link href='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css'>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.1.60/inputmask/jquery.inputmask.js"></script>

<label><input type="checkbox" name="course_select">item1</label>
<label><input type="checkbox" name="course_select2">item2</label>
<label><input type="checkbox" name="course_select3">item3</label>
<button  type="button" onclick="AlertFunction()">change color</button>

再调整JS逻辑,选中复选框的父级<label>设置颜色即可:

function AlertFunction() {
  $("input:checkbox[name^='course_select']:checked").parent('label').css('color', 'red');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:45:00