document.getElementById(id)其中id是可变的

时间:2015-04-26 17:37:48

标签: javascript variables getelementbyid

我希望您对我正在努力开发的一些功能提供帮助。我正在使用的代码:

function ApplyModificationDate (){
var results;
var today;
var moddatestable;
var arrayID;
results = getIframeTableContent('reportresults');

var arrayID = [100,101,102,103,104,105,106];

for(var i=0;i<arrayID.length;i++){
    if(arrayID[i]==results[i][1])

     document.getElementById(arrayID[i]).innerHTML = results[i][1];
 }
}

getIframeTableContent是一个从iframe收集数据并且工作正常的函数。

结果是一个包含两列的数组。第一列包含id,第二列是每个id的最后修改日期。 我想检查带有结果值的arrayID的id并显示日期,但IE控制台中有错误并且日期没有出现(无法设置属性'innerHTML'的值:object为null或undefined)。

使用第二个功能我想检查日期是否超过今天的7天。在这种情况下,我希望日期变为粗体。我尝试使用以下功能但不起作用。

function CheckModDate(){

    today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth()+1; 
    var yyyy = today.getFullYear();

    if(dd<10) {
        dd='0'+dd
    } 

    if(mm<10) {
        mm='0'+mm
    } 

    today = dd+'/'+mm+'/'+yyyy;


    moddatestable = [100,101,102,103,104,105,106];
    for(var i=0;i<moddatestable.length;i++){

        if((today - document.getElementById(moddatestable[i]).innerHTML)<=7)
        document.getElementById(moddatestable[i]).innerHTML.style.fontWeight =      'bold';
    }
}

欢迎任何帮助, 谢谢

1 个答案:

答案 0 :(得分:0)

在我看来,您实际上并未使用阵列中的ID。考虑这个例子。

var arrayID = [100,101,102,103,104,105,106];

for(var i=0; i < arrayID.length; i++){
    console.log(i);
    console.log(arrayID[i]);
}

输出将是以下

0
100
1
101
...

实际使用数组中的ID。

var arrayID = [100,101,102,103,104,105,106];

for(var i=0; i < arrayID.length; i++){
    var elem = document.getElementById( arrayID[i] );
    // do stuff with elem
}