0

我是这方面的初学者,所以请耐心等待。我已经查找了这个问题并没有找到解决方案。我有以下代码:

在头上

<script>
   function ledonoff(led)
    {
     if (document.getElementById('ck1').checked == true){
      document.getElementById('led1').style.backgroundImage="url('Image/led_green.gif')";}
     else {
      document.getElementById('led1').style.backgroundImage="url('Image/led_red.gif');}
    }
</script>

在身体上

<div id="led1"></div>

<input name="" type="checkbox" id="ck1" onchange="ledonoff('led1')" value=""/>

我想让函数 ledonoff 在函数中使用 2 个参数:要更改的 div id 和要在函数的 if 上验证的复选框。谁能帮我这个。谢谢

4

5 回答 5

1

将您的代码修改为:

<script>
function ledonoff(isChecked, elementId)
{
if (isCkecked){
    document.getElementById(elementId).style.backgroundImage="url('Image/led_green.gif')";}
else {
    document.getElementById(elementId).style.backgroundImage="url('Image/led_red.gif');}
}
</script>

和身体:

<input name="" type="checkbox" id="ck1" onchange="ledonoff(this.checked, "led1")" value=""/>Led 1
于 2013-04-13T08:33:15.677 回答
1

将函数更改为:

  function ledonoff(led,checkBox){
       var theDiv = document.getElementById(led),
           check = document.getElementById(checkBox);
       if (check.checked == true){
        theDiv.style.backgroundImage="url('Image/led_green.gif')";
       } else {
        theDiv.style.backgroundImage="url('Image/led_red.gif')";
      }
    }

和htmlonchange:

"ledonoff('led1','ck1')"

在jsbin中

于 2013-04-13T08:33:31.413 回答
0

你可以简单地传递它:onchange="ledonoff('led1', 'ck1')".

但是,您的函数需要一个参数,因此您需要对其进行修改。

function ledonoff(led) -> function ledonoff(led, ck)

只是要注意

这种类型的 JavaScript 称为Obtrusive Javascript。最近设计原则的转变是将您的 Javascript 和 HTML 放在完全独立的文件中。DOM您应该使用向DOM元素添加事件侦听器,而不是以属性方式将函数分配给事件。是一个很好的教程,可以帮助您开始这个想法。

于 2013-04-13T08:27:51.637 回答
0

做这个:

<script>
 function ledonoff(led,checkbox){
   if(document.getElementById(checkbox).checked == true){
    document.getElementById(led).style.backgroundImage="url('Image/led_green.gif')";
   }else{
    document.getElementById(led).style.backgroundImage="url('Image/led_red.gif')";
   }
 }
</script>

和你的html:

<div id="led1"></div>
<input name="" type="checkbox" id="ck1" onchange="ledonoff('led1','ch1')" value=""/>Led1

我想,就是这样。我假设您的图像路径是正确的。

于 2013-04-13T08:33:29.417 回答
0

用这个。

</script>
 function ledonoff(led,chk)
 {
  if (document.getElementById(chk).checked == true){
   document.getElementById(led).style.backgroundImage="url('Image/led_green.gif')";}
  else {
   document.getElementById(led).style.backgroundImage="url('Image/led_red.gif');}
  }
</script>


<div id="led1"></div>

<input name="" type="checkbox" id="ck1" onchange="ledonoff('led1','ck1')" value=""/>Led 1
于 2013-04-13T08:39:44.020 回答