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

これを使って。

</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 に答える
0

単純に渡すことができます: onchange="ledonoff('led1', 'ck1')".

ただし、関数は 1 つの引数を想定しているため、それを修正する必要があります。

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 に答える