如果选中复选框,我尝试更改div的背景颜色。
它为循环外的div工作,但不适用于内部的div。所有变量看起来都很好,所以我认为是语法错误。
谢谢!
<input type="checkbox" name="check0" value='1' <?php echo ((${executed_mod0}=="1")? "checked" : ''); ?> onchange='this.nextSibling.style.backgroundColor = this.checked ? "#6EDBFF" : "white";'><input type="text" name="procedure0" value="<?php echo $repair_mod0;?>">
<?php
$i=1;
while($i<$nrpm)
{
echo '<br><input type="checkbox" name="check'.$i.'" value="1"'. ((${executed_mod.$i}=="1")? "checked":"").' onchange="this.nextSibling.style.backgroundColor = this.checked ? \"#6EDBFF\" : \"white\";"><input type="text" name="procedure'.$i.'" value="'.${repair_mod.$i}.'">';
$i++;
};
?>
答案 0 :(得分:2)
也许this可以让你朝着正确的方向前进。在获取文本框以设置背景颜色时,我又添加了一个.nextSibling
。
HTML
<input type="checkbox" name="check0" value='1' onchange='setColor(this)' />
<input type="text" name="procedure0" value="1" />
<input type="checkbox" name="check1" value='2' onchange='setColor(this)' />
<input type="text" name="procedure1" value="2" />
<input type="checkbox" name="check2" value='3' onchange='setColor(this)' />
<input type="text" name="procedure2" value="3" />
的JavaScript
function setColor(ele){
ele.nextSibling.nextSibling.style.backgroundColor = ele.checked ? "#6EDBFF" : "white";
}