我在 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,在这里:<li id="selectedAuthorities-4_1li" class="">
我应该在我原来的 JS 函数中添加什么来实现这一点。请注意,li id 不是静态的,它们是动态的,生成的是 html li id。
解决方案(逻辑)的过程:
加载事件,检查是否检查了带有X id的输入,如果是,使用JS函数changeSelectionStyle更新父li。因为我现在遇到的问题是,当我选择一个输入(检查它)时,li 颜色正在切换,但是当它加载一个选择/检查的输入时,颜色保持不变,并且当我改变颜色时单击输入(取消选中它 - 错误效果)