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 页面中使用当前日期而不是 On 位置。谢谢

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 回答