2017-01-26 9 views
0

ここで見つけたJSFiddleとよく似た何かをしようとしています.があります。毎回違うCSSをロードする毎にページをロードする

私が取り組んでいる問題は、上記の例では身体の背景が変わっていることです。ページが読み込まれるたびにdivの背景色を変更しようとしています。私は何時間も試してみましたが、正しく動作させることができません。ここに私のコードは次のとおりです。http://jsfiddle.net/Pp5up/11/

HTML

<div id="nm-single-product-bg"> 
Test 
</div> 

CSS

#nm-single-product-bg.style1 {background:red;} 
#nm-single-product-bg.style2 {background:blue;} 
#nm-single-product-bg.style3 {background:black;} 

JS

var rand = Math.floor((Math.random()*3)+1); 
var style = "style" + rand; 
document.getElementsById("nm-single-product-bg")[0].className+=style 

誰かが助けることができれば、私はとても感謝しています!このラインこの

document.getElementById("nm-single-product-bg").className+=style 

document.getElementsById("nm-single-product-bg")[0].className+=style 

この原因は、すでにに記載されている

+2

サイドノートでは、それは 'getElementById'ない' getElementsById'です。 http://jsfiddle.net/j08691/h6es01ur/。 IDはクラスとは異なりユニークです。 – j08691

+2

へようこそスタックオーバーフローWes Asbell!あなたはあなたのコンソールをチェックしましたか?(http://stackoverflow.com/documentation/javascript/185/getting-started-with-javascript/714/using-console-log)そこに問題の原因が分かります。 –

+2

@ j08691これは副次的なことではなく、問題です。それと '[0]'。 –

答えて

1

変更コメント:)

IDは、そのgetElementByIdの代わりに、そう、要素ごとに一意ですgetElementByIds &常に1つのユニークなdivを返すので、その配列の添字は必要ありません。

DEMO

関連する問題