我已经用尽了业余脚本技巧并寻求帮助。
这是我的网站主索引和当前工作脚本,其中一组添加随机显示在我的主页上。
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更改为包含类等等。
非常感谢任何帮助。
非常感谢。
答案 0 :(得分:0)
问题似乎是您正在使用div的id属性。如果代码中只有一个d1,d2,d3,d4副本,这很好,但是如果多次包含它,则getElementById将无法区分具有相同id的不同div。
我会做什么改变d1到d4中每个类属性的id attirbutes(并对每个d1-d4的内容做同样的事情,例如make id =“adTitle”into class =“adTitle”),然后将一组广告包含在一个div中,其中的类属性名为“adbox”
从那里,你修改你的代码以获得所有具有adbox类的div,然后像你当前那样循环使用类名为d1-d4的内部div。使用jQuery,您可以执行类似$('.adbox').each()
的操作,这样可以简化循环,但如果您想坚持使用纯JS,也可以使用document.getElementsByClassName('adbox')