1

マウスクリック時にメッセージを表示する必要があります。しかし、次にマウスをクリックしたときに別のメッセージを表示する必要もあります。問題は、私のコードでは、最初のマウス クリックで両方のメッセージが表示されることです。

<!DOCTYPE>
    <html>
        <head>
            <script>
                function myfunction()
                {
                var obj=document.getElementById("msg1");
                obj.innerHTML="message1";
                if(obj.innerHTML=="message1")
                {
                    var obj1=document.getElementById("msg2");
                    obj1.innerHTML="message2";
                }

                }
            </script>

        </head>
        <body>
            <div id="msg">
                <form name="myform">
                    <input type="button" value="click" onclick="myfunction()">
                        <p id="msg1"></p>
                        <p id="msg2"></p>
                </form>
            </div>
        </body>
    </html>
4

6 に答える 6

1
<script>
var flag=0;            
function myfunction()
            {
            if (flag==0)
            {
            var obj=document.getElementById("msg1");
            obj.innerHTML="message1";
            flag=1;}
            else
            {
                var obj1=document.getElementById("msg2");
                obj1.innerHTML="message2";
            }

            }
</script>
于 2012-09-10T06:50:37.680 に答える
0

クリックカウンターを追加して、最初のクリックまたはそれ以上のクリックであることを確認します。

<!DOCTYPE>
<html>

<head>
    <script>
        var $clickCount = 0;
        function myfunction() {
            $clickCount++;
            var obj = document.getElementById("msg1");
            obj.innerHTML = "message1";
            if (obj.innerHTML == "message1") {
                var obj1 = document.getElementById("msg2");
                if ($clickCount == 2) {
                    obj1.innerHTML = "message2";
                }

            }

        }
    </script>
</head>

<body>
    <div id="msg">
        <form name="myform">
            <input type="button" value="click" onclick="myfunction()">
            <p id="msg1"></p>
            <p id="msg2"></p>
        </form>
    </div>
</body>

</html>
于 2012-09-10T09:16:17.813 に答える
0
if (obj.innerHTML == "message1") {
  var obj1 = document.getElementById("msg2");
  obj1.innerHTML = "message2";
}else{
  obj.innerHTML = "message1";
}

obj.innerHTML == "message1"ifを設定した直後にif をチェックしようとしていたため、 if は常に実行されます。

于 2012-09-10T06:49:07.920 に答える
0

obj の innerhtml を "message1" に設定し、その直後に innerHTML が常に true になる "message1" であるかどうかを確認します。

if を変更する必要があります。だからそれは言います:

if(obj.innterHTML=="message1"){
  obj.innerHTML="message2";
} else {
  obj.innerHTML="message1";
}
于 2012-09-10T06:49:35.563 に答える
0

他の人に似ていますが、一体何ですか:

    var obj1 = document.getElementById('msg1');
    var obj2 = document.getElementById('msg2');

    if (obj1.innerHTML == '') {
      obj1.innerHTML = 'message1';
    } else {
      obj2.innerHTML = 'message2';
    }
于 2012-09-10T06:52:48.323 に答える
0
function myfunction() {
  var i, ele;
  for(i = 1; i <= 2; i++) {
     ele = document.getElementById("msg"+i);
     if (ele && ele.innerHTML.length == 0) {
         ele.innerHTML = 'message' + i;
         return;
     }
  }
}
于 2012-09-10T06:54:06.260 に答える