0

当我试图在使用javascript单击文本框时隐藏元素div时。但它不能。我的程序有什么错误。任何人都建议我一个好的

<html>
   <head>
   <script>
   function clear()
   {
    alert("hi");
    document.getElementById("mails").style.display="none";
   }
   </script>
   </head>
   <body>
  <input type="text" onfocus="clear();" />
  <div id="mails">hii</div>
  </body>
  </html>
4

4 回答 4

1

如果使用 jQuery,隐藏元素非常容易。这样,您需要做的就是:

$('#mails').hide();

如果你更喜欢使用 DOM,那么你可以试试这个:

<html>
<head>
<script>
   function hideit()
   {
    alert("hi");
    document.getElementById("mails").style.display="none";
   }
</script>
</head>
<body>
  <input type="text" onClick="hideit()" />
  <div id="mails">hii</div>
</body>
</html>
于 2018-09-05T15:07:21.473 回答
1

虽然 clear 不是关键字,但似乎有些浏览器仍然支持document.clear & 这可能会在这里停止 clear 功能。您可以更改函数名称并尝试

function myF() {
  
  document.getElementById("mails").style.display = "none";
}
<input type="text" onfocus="myF();" />
<div id="mails">hii</div>

于 2018-09-05T15:13:44.400 回答
1

请使用任何其他名称,而不是使用函数名称作为 clear()。clear 方法是指过时的 document.clear() 方法,因此它不会调用您编写的 clear 方法。根据HTML5 Specification, clear() 方法必须什么都不做。

于 2018-09-06T06:08:19.633 回答
0

我来晚了,但我可以同意brk。clear() 被本机函数阻止。

<html>
   <head>
   <script>
     function clearFunction()
     {
       console.log("onfocus called");
       document.getElementById("mails").style.display="none";   
     }
   </script>
   </head>
   <body>
    <input type="text" onfocus="clearFunction();" />
    <div id="mails">hii</div>
  </body>
  </html>

于 2018-09-05T15:16:16.697 回答