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

与其他人类似,但到底是什么:

    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 回答
0
if (obj.innerHTML == "message1") {
  var obj1 = document.getElementById("msg2");
  obj1.innerHTML = "message2";
}else{
  obj.innerHTML = "message1";
}

您的 if 将始终执行,因为您试图obj.innerHTML == "message1"在将其设置为之后立即检查 if 。

于 2012-09-10T06:49:07.920 回答
0

您是否看到您将obj 的innerhtml 设置为“message1”,然后在您检查innerHTML 是否为“message1”之后立即为真。

你需要改变if。所以它说:

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