GakkiYui1 2020-09-09 10:42 采纳率: 40%
浏览 142

关于前端单选框样式问题,请求大佬指点一下

图片说明

问题:
如图,如何单击选中后,变蓝色。单击其他单选框的时候,之前选中的变灰,选中的变蓝。谢谢大佬们指点一下

 补充一下:
 <table id="table_report" class="table table-striped table-bordered table-hover">
                                    <tr>
                                        <td style="width:75px;text-align: right;padding-top: 13px;">文档类型:</td>
                                        <td>
                                            <c:if test="${not empty fileTypeList}">
                                                <c:forEach items="${fileTypeList}" var="fileTypeList" varStatus="vs">
                                                    <label for="${vs.index+1}" class="type" id="FILE_TYPE" onclick="changeCss()">
                                                        <div class="box"  name="changeCss">${fileTypeList.NAME}</div>
                                                    </label><input type="radio" name="FILE_TYPE" id="${vs.index+1}" value="${fileTypeList.ORDER_BY}" <c:if test="${pd.FILE_TYPE eq fileTypeList.ORDER_BY}">checked="checked"</c:if> />
                                                </c:forEach>
                                            </c:if>
                                        </td>
                                    </tr>
                                </table>
<style type="text/css">
        .box{
            width: 130px;
            height: 30px;
            border-radius: 5px;
            background: #CCCCCC;
            line-height: 30px;
            text-align: center;
            color: #FFFFFF;
        }
        .box:hover{
            background: #0086B3;
        }
        .changeCss1{
            width: 130px;
            height: 30px;
            border-radius: 5px;
            background: #0086B3;
            line-height: 30px;
            text-align: center;
            color: #FFFFFF;
        }
    </style>
function changeCss()
    {
        var arr = document.getElementsByName("FILE_TYPE");
        var div = document.getElementsByName("changeCss");
        for (var i =0; i< arr.length; i++)
        {
            if (arr[i].checked)
            {
              div[i].className = 'changeCss1';
            }else
            {
                div[i].className = 'box';
            }
        }
    }

请问为什么现在我单击选中一个后,样式不是改变当前选中的而是改变它的前一个呢?双击的话就是选中当前并且也只改变当前的

  • 写回答

3条回答 默认 最新

  • weixin_43835613 2020-09-09 11:01
    关注

    首先 灰色按钮和蓝色按钮有不同的class,通过class选择器设置他们是蓝色还是灰色。然后再给所有的按钮添加点击事件。
    在点击事件中判断当前点击按钮的class是否代表蓝色,如果是,直接返回,否则,将代表蓝色的class的class移除 ,然后,给当前点击的
    元素添加上代表蓝色的class

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET