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 を表示しようとしています。

よく働く!

しかし、問題が 1 つあります。使ってみると……

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

... 1 つのページに 2 回配置しても、ページに 2 つの異なるランダムな div が表示されません。呼び出し元の div によってランダムに呼び出される div のセットごとに異なるファイルを使用しています。

2 番目のインクルージョンのために JS を編集する方法がわからないことを指摘しておく必要があります。そこに一連の div ID を追加するだけですか??? JS のどの要素を変更すればよいですか?

問題は自分の ID 設定にあることがわかり、それをクラス設定に変更しました。そのため、クラスなどを組み込むためにJSに追加の変更を加えるのに助けが必要です。

どんな助けでも大歓迎です。

どうもありがとう。

4

1 に答える 1

0

問題は、div に id 属性を使用していることにあるようです。これは、コード内に d1、d2、d3、d4 のコピーが 1 つしかない場合は問題ありませんが、複数回含まれている場合、getElementById は同じ ID を持つ異なる div を区別するのに苦労します。

d1 から d4 までのそれぞれの id 属性をクラス属性に変更し (さらに、d1 から d4 のそれぞれの内容についても同じことを行います。たとえば、id="adTitle" を class="adTitle" にします)。 「adbox」のような名前のクラス属性を持つ div 内の一連の広告

そこから、adbox クラスを持つすべての div を取得するようにコードを変更し、現在のようにクラス名 d1-d4 を持つ内部 div をループします。jQueryを$('.adbox').each()使用すると、ループを非常に簡単にするようなことができますがdocument.getElementsByClassName('adbox')、純粋なJSに固執したい場合にも使用できます

于 2013-01-04T01:18:55.690 に答える