【问题标题】:Javascript showing div box doesn't work显示 div 框的 Javascript 不起作用
【发布时间】:2017-07-12 08:32:17
【问题描述】:

对不起,我对 JS 很陌生,但我需要它来工作......

你能快速告诉我这个脚本有什么问题吗?我只是希望 div 框在有人加载页面时每秒钟都可见...

<body onload="script();">

<script type="text/javascript">
var random = Math.floor(Math.random() * 2) + 1  ;
	
	if (random<1) {
	document.getElementById('ele').style.display = 'block';
};
</script>



<div style="display: none;" id="ele">Div-Box<br />
	</div>
</body>

干杯, 直到

【问题讨论】:

  • 你的功能在哪里? (script();)
  • 如果你想让它在每第二个页面视图上显示它,那么随机数显然不会这样做,因为它是 random...你不同意吗?
  • 你的代码也永远无法工作,因为它是写在div 之上的 所以,从脚本的角度来看,div 不存在。脚本应该写在body标签的末尾

标签: javascript random


【解决方案1】:

使用 random 并不能保证 div 会在页面加载的每秒钟显示一次。为此,您需要跟踪用户打开页面的次数。您可以在localStorage 中执行此操作。

<body>
  <script>
    var viewCount = localStorage.getItem('viewCount') || 1; // default to 1 the first time
    if (viewCount % 2 === 0) { // if it's an even number
      document.getElementById('ele').setAttribute('style', 'display: block');
    }
  </script>
</body>

【讨论】:

    【解决方案2】:

    除了您的逻辑之外,您还在 onload 上调用 script() 函数,但它没有定义。

    <body onload="script();">
    
    <script type="text/javascript">
    function script(){
    var random = Math.floor(Math.random() * 2) + 1  ;
    	console.log(random);
    	if (random>1) {
    	document.getElementById('ele').style.display = 'block';
    };
    }
    </script>
    
    
    
    <div style="display: none;" id="ele">Div-Box<br />
    	</div>
    </body>

    【讨论】:

      猜你喜欢
      • 2015-12-10
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多