0

私はこのコードを持っており、GetElementsbyIdで動作しますが、GetElementsByClassNameを使用して、コード内の複数の場所に渡すことができるようにするにはどうすればよいですか。これが私のコードです。

http://jsfiddle.net/C6Qgf/

これがjsです

var currentTime = new Date()
var month = currentTime.getMonth() + 1
var day = currentTime.getDate()
var year = currentTime.getFullYear()
document.write(month + "/" + day + "/" + year)
document.getElementsByClassName("time").innerHTML=(month + "/" + day + "/" + year);​

HtmLページのOnplaceよりも現在の日付を使用できるようにしたいと思います。ありがとうございました

4

2 に答える 2

1

配列を取得しているので、それをループする必要があります。document.writeまた、ドキュメントの内容を置き換えるため、使用しないでください。

また、すべてのセミコロンを見逃しました。これにより、特定の状況で予期しない結果が生じる可能性があるため、常にセミコロンを追加することを忘れないでください。

更新された例は次のとおりです。

var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();
var cls = document.getElementsByClassName('time');

for (var i = 0; i < cls.length; i++) {
    cls[i].innerHTML = (month + "/" + day + "/" + year);​​​​
}

フィドル: http: //jsfiddle.net/C6Qgf/1/

于 2012-11-15T08:38:11.430 に答える
1

あなたはあなたの質問にタグjQueryを付けました、そして私はあなたが使うと思いますjQuery

jQueryを使用すると、次のことができます。

var currentTime = new Date()
var month = currentTime.getMonth() + 1
var day = currentTime.getDate()
var year = currentTime.getFullYear()

$(".time").text(month + "/" + day + "/" + year);​​​​

デモ: http: //jsfiddle.net/C6Qgf/3/

注:ネイティブJavaScriptを使用している場合はdocument.getElementsByClassName、IEでは機能しないことに注意してください。修正する回避策があります。以下のコードを参照してください。

ネイティブJSの使用(IEサポート付き)

var currentTime = new Date()
var month = currentTime.getMonth() + 1
var day = currentTime.getDate()
var year = currentTime.getFullYear()
//document.write(month + "/" + day + "/" + year)
var obj = getElementsByClassName("time");
for(var i=0; i<obj.length; i++){
    obj[i].innerHTML=(month + "/" + day + "/" + year);
}

//For IE Fix
function getElementsByClassName(className) {
    if (document.getElementsByClassName){
      return document.getElementsByClassName(className);
    }else{
        return document.querySelectorAll('.' + className);
    }
}

デモ: http: //jsfiddle.net/C6Qgf/6/

于 2012-11-15T08:39:36.067 に答える