首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript: Onload如果选中了复选框,则更改li类

Javascript: Onload如果选中了复选框,则更改li类
EN

Stack Overflow用户
提问于 2010-05-12 22:39:39
回答 2查看 11K关注 0票数 0

我在javascript端有这段代码:

代码语言:javascript
复制
function changeSelectionStyle(id) {
    if(document.getElementById(id).className != 'yes'){
    document.getElementById(id).className = 'yes';
    }
    else{document.getElementById(id).className = '';}
}

在html上是这样的:

代码语言:javascript
复制
<ul>
  <li id="selectedAuthorities-4_1li" class="">
    <input type="checkbox" id="selectedAuthorities-4_1" name="selectedAuthorities" value="ROLE_ADD_COMMENT_TO_CV" checked="checked" onload="changeSelectionStyle(this.id + 'li');" onclick="changeSelectionStyle(this.id + 'li'); checkFatherSelection(this.id);">

    <a href="#" onclick="document.getElementById('selectedAuthorities-4_1').click(); return false;">  Agregar comentario <samp><b></b>Permite agregar comentario en el detalle.</samp>
    </a>
 </li> 

我不能得到工作的是,当复选框被选中时,在加载时,JS应该选中它,并将class="yes“分配给li,此处:<li id="selectedAuthorities-4_1li" class="">

我应该在我的原始JS函数中添加什么才能实现这一点。请注意,li id不是静态的,它们是动态的,html li id是生成的。

解决方案的流程(逻辑):

事件时,检查是否检查了带有X id的输入,如果是,则使用JS函数changeSelectionStyle更新父li。因为我现在遇到的问题是,当我选择一个输入(选中它)时,li颜色正在切换,但当它加载一个选中/选中的输入时,该颜色保持不变,并且当我单击该输入时它会改变颜色(取消选中它-错误的效果)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-06 21:43:44

尝试以下代码:

代码语言:javascript
复制
window.onload=function(){
 const checkBoxes=document.querySelectorAll("input[type='checkbox']");
 for(var i=0; i < checkBoxes.length; i++) 
 {
    if(checkBoxes[i].checked=='checked')
       checkBoxes[i].parentNode.className='yes';
 }
}
票数 2
EN

Stack Overflow用户

发布于 2014-12-05 17:57:32

代码语言:javascript
复制
window.onload=function(){
var inputFields=document.getElementsByTagName('input');
var checkBoxes[];
for(var i=0;i<inputFields.length;i++)
 if(inputFields[i].type=='checkbox'&&inputFields[i].checked=='checked'&& inputFields[i].parentNode.tagName=='LI')
inputFields[i].parentNode.className='yes';
}

开始吧..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2819814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档