1

我已经用尽了我的业余脚本技能并寻求帮助。

这是我的网站主索引和当前工作脚本,其中一组添加随机显示在我的主页上。

http://blessone.netau.net/

在尝试了很多不同的代码后,我已经设法解决了这个问题。

divs = ['d1','d2','d3','d4'];

function hideDivs() {
for (var i=0; i<divs.length; i++)
document.getElementsByClassName('adbox');

}

function showDiv() {
hideDivs(); //hide them all before we show the next one.
var randomDiv = divs[Math.floor(Math.random()*divs.length)];
var div = document.getElementsByClassName(randomDiv).style.display =
'block';

setTimeout(showDiv,500); //set a delay before showing the next div

}`

我试图从“adverts/pop_left_ad.php”中的一组 div 中随机在我的主页上显示一个 div。

效果很好!

但是一个问题。当我尝试使用......

<?php include("adverts/pop_left_ad.php"); ?>

...在一页上两次它不会在我的页面上给我两个不同的随机 div,无论我将它们放在哪里。我为每组 div 使用不同的文件,而不是由他们的调用 div 随机调用。

我应该指出我不确定如何为我的第二次包含编辑 JS。我只在其中添加一系列 div ID 吗???我在 JS 中更改了哪些元素?

我现在了解到问题是我的 id 设置,并将其更改为类设置。所以我需要帮助对我的 JS 进行额外的更改以合并类等等。

任何帮助是极大的赞赏。

非常感谢。

4

1 回答 1

0

问题似乎是您正在为您的 div 使用 id 属性。这在代码中只有一个 d1、d2、d3、d4 副本的情况下很好,但如果它被包含多次,getElementById 将难以区分具有相同 id 的不同 div。

我会做什么将 d1 到 d4 中的每一个的 id 属性更改为类属性(并对 d1-d4 中的每一个的内容执行相同的操作,例如将 id="adTitle" 设置为 class="adTitle"),然后将div 中的一组广告,其类属性名为“adbox”

从那里,您修改您的代码以获取所有具有 adbox 类的 div,然后像现在一样循环使用类名 d1-d4 的内部 div。使用 jQuery,您可以执行类似的操作$('.adbox').each(),使循环变得简单,但document.getElementsByClassName('adbox')如果您想坚持使用纯 JS ,也可以使用

于 2013-01-04T01:18:55.690 回答