将参数传递给脚本函数

时间:2013-04-13 08:18:45

标签: javascript html

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

在头上

<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上验证的复选框。 谁能帮我这个。 谢谢

5 个答案:

答案 0 :(得分: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

答案 1 :(得分: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')"

in jsbin

答案 2 :(得分:0)

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

但是你的函数期待一个参数,所以你需要修改它。

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

请注意

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

答案 3 :(得分: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

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

答案 4 :(得分: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