无法根据If语句显示Div

时间:2013-06-02 12:08:37

标签: javascript html onload

任何人都可以帮我解决这个Javascript问题:

我需要根据当前网站的主机名显示几个div组件,并且只在初始加载页面时才需要这样做。我为此开发了一个Javascript代码,但无法以所需的方式显示/隐藏div组件。

以下Javascript代码始终在控制台上显示“Uncaught SyntaxError:Unexpected token else”错误。

<html>
   <head>
       <script>

          var hostName = window.location.host;

          var div1 = document.getElementById('iframePortal');
          var div2 = document.getElementById('iframeNormal');

          If(String(hostName).indexOf('w3schools') !== -1)
          {
          document.getElementById('iframePortal').style.display = 'block';
          document.getElementById('iframeNormal').style.display = 'none';
          }
          else {
          document.getElementById('iframePortal').style.display = 'none';
          document.getElementById('iframeNormal').style.display = 'block';
          }
       </script>
    </head>
    <body>
         <div id="iframeNormal">
             some text 1
         </div>
         <div id="iframePortal">
             another 1


          </div>
        </body>
    </html>

5 个答案:

答案 0 :(得分:3)

使用if代替此If

if(hostName.indexOf('w3schools') !== -1)

答案 1 :(得分:2)

首先,js是区分大小写的,因为他们告诉你。第二件事是你在完全加载之前尝试访问元素。将您的代码修改为:

<html>
   <head>
    </head>
    <body>
         <div id="iframeNormal">
             some text 1
         </div>
         <div id="iframePortal">
             another 1


          </div>

       <script>

          var hostName = window.location.host;

          var div1 = document.getElementById('iframePortal');
          var div2 = document.getElementById('iframeNormal');

          if(String(hostName).indexOf('w3schools') !== -1)
          {
          document.getElementById('iframePortal').style.display = 'block';
          document.getElementById('iframeNormal').style.display = 'none';
          }
          else {
          document.getElementById('iframePortal').style.display = 'none';
          document.getElementById('iframeNormal').style.display = 'block';
          }
       </script>
      </body>
    </html>

答案 2 :(得分:0)

你有大写的“我”字母 - &gt;用“i”替换它......所以,应该是'if'。

答案 3 :(得分:0)

我会使用window.location.hostname而不是window.location.host, 还有typeof(window.location.hostname)返回'string'所以你不需要在带有String的if语句中包装hostname

<script>
  var div1 = document.getElementById('iframePortal');
  var div2 = document.getElementById('iframeNormal');

  if(window.location.hostname.indexOf('w3schools') >= 0){
     div1.style.display = 'block';
     div2.style.display = 'none';
  }else{
     div1.style.display = 'none';
     div2.style.display = 'block';
  }
</script>

答案 4 :(得分:0)

这是一个有效的jsFiddle:http://jsfiddle.net/rsFPF/

我也必须使用一些CSS。请试一试。

不要使用jsFiddle?以下是代码:

HTML:

<div id='iframeNormal' class='iframes'> some text 1 </div>
<div id='iframePortal' class='iframes'> another 1 </div>

CSS:

.iframes
{
    display: none;
}

的javascript:

var div1 = document.getElementById('iframeNormal');
var div2 = document.getElementById('iframePortal');

if (window.location.host.indexOf('w3schools') !== -1)
{
div1.style.display = 'block';
}
else
{
div2.style.display = 'block';
}