Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:Onload如果选中复选框,则更改li类_Javascript_Html_Checkbox_Onload - Fatal编程技术网

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

Javascript:Onload如果选中复选框,则更改li类,javascript,html,checkbox,onload,Javascript,Html,Checkbox,Onload,我在javascript端有以下代码: function changeSelectionStyle(id) { if(document.getElementById(id).className != 'yes'){ document.getElementById(id).className = 'yes'; } else{document.getElementById(id).className = '';} } 这是关于html的: <ul>

我在javascript端有以下代码:

function changeSelectionStyle(id) {
    if(document.getElementById(id).className != 'yes'){
    document.getElementById(id).className = 'yes';
    }
    else{document.getElementById(id).className = '';}
}
这是关于html的:

<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,这里:
  • 我应该向我的原始JS函数中添加什么来实现这一点。请注意,li id不是静态的,而是动态的,html li id是生成的

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

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

    window.onload=function(){
    var inputFields=document.getElementsByTagName('input');
    var复选框[];
    
    对于(var i=0;iI删除了我的答案,因为似乎存在语言障碍和/或误解。请更新问题以更详细地阐述问题。我想服务器会将复选框设置为
    checked
    ,那么为什么您要用JavaScript执行此操作?为什么不使用服务器端代码?我用可能的解决方案更新了问题选项逻辑。Samir有一点。如果您可以使用服务器端代码设置
    checked=“checked”
    ,为什么不使用相同的逻辑设置
    class=“yes”
    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';
    }