2017-07-28 4 views
0

divのinnerHTMLをjavascript関数の値に基づいて変更しようとしています。残念ながら、私はエラーが発生していると私はなぜ不明です。innerHTMLを変更しようとしてエラーが発生しました - nullのinnerHTMLプロパティを設定できません

擬似コード

secondsからnumber > 2変更innerHTMLプロパティは、そうでない場合はsecondに変更した場合。

私は周りを見て、私はDOMの前にトリガーされている機能に関連する何かを発見した。私はいくつかの変更を行いましたが、まだ成功しませんでした。私が間違っていることは何ですか? DOMをレンダリングした後、どのように関数をトリガーすることができますか? window.onloadは既に作業していませんか? document.getElementsByClassName('seconds')によってIdをdocument.getElementById('seconds')

しかし、jQueryを使って、ID$('#seconds')クラス

は、事前に

JS

$(document).ready(function() { 
    window.onload = function() { 
    // Month,Day,Year,Hour,Minute,Second 
    upTime('may,05,2006,00:00:00'); 
    }; 

    function upTime(countTo) { 
     var now = new Date(); 
     countTo = new Date(countTo); 
     var difference = (now - countTo); 

     var years = Math.floor(difference/(60 * 60 * 1000 * 24)/365); 
     var days = Math.floor(difference/(60 * 60 * 1000 * 24) * 1); 
     var hours = Math.floor((difference % (60 * 60 * 1000 * 24))/(60 * 60 * 1000) * 1); 
     var mins = Math.floor(((difference % (60 * 60 * 1000 * 24)) % (60 * 60 * 1000))/(60 * 1000) * 1); 
     var secs = Math.floor((((difference % (60 * 60 * 1000 * 24)) % (60 * 60 * 1000)) % (60 * 1000))/1000 * 1); 

     document.getElementById('years').firstChild.nodeValue = years; 
     document.getElementById('days').firstChild.nodeValue = days; 
     document.getElementById('hours').firstChild.nodeValue = hours; 
     document.getElementById('minutes').firstChild.nodeValue = mins; 
     document.getElementById('seconds').firstChild.nodeValue = secs; 

     if (secs > 2) { 
     console.log('over'); 
     document.getElementById('.seconds').innerHTML = "seconds"; 
     } else { 
     console.log('lower'); 
     document.getElementById('.seconds').innerHTML = "second"; 
     } 

     clearTimeout(upTime.to); 
     upTime.to = setTimeout(function() { 
      upTime(countTo); 
     }, 1000); 
    } 
}); 
+0

.innerHTMLを設定しようとしているオブジェクトが存在しないというエラーメッセージが表示されます。 '.innerHTML'では問題はありませんが、その直前のコードに問題があります。つまり、' document.getElementById( "。seconds") '' .': 'document.getElementById(" seconds ")なしで試してみてくださいinnerHTML = "秒" " –

+0

トピックオフ:それはあなたのコードに入れていいです、私のペットpeevsのようなコードが表示されます:"時間残り:1秒 " - ugh。 innerHTML = "second" +(secs == 1? "": "s"); '(あなたがなぜあなたの名前であるのかわかりません。 '> 2'を使うと'!= 1'または '> = 2'でなければなりません)。 –

+0

ありがとうございます。その理由は、私がそれらの値を変更することを含む多くのことを試していたからです。私はあなたの提案でコードを更新します...三元演算子の権利ですか?私はこれらのことを覚えておく必要があります。 –

答えて

3

クラスによって要素を取得しますありがとう$('.seconds')

+0

ありがとうアンドリュー。 –

関連する問題