如何初始化javascript中的一个参数? document.getElementById("DataAreaXa")

How to initialize a parameter in javascript? document.getElementById("DataAreaXa")

当 运行 运行我的脚本时,我得到“无法获取 属性 'innerHTML' 的值:对象为 null 或未定义 ” .

根据我在这个论坛上找到的,我需要初始化一个参数。

我的应用程序中有几个按钮 <input id=runbutton type="button" value="&#8594;" onClick="runScriptUp(DataArea1a,DataArea1b,arr1)"> 直到 DataArea7a,DataArea7b,arr7

OnClick 函数被触发并传递参数:

function runScriptUp(DataAreaXa,DataAreaXb,arrX){
document.getElementById("DataAreaXa").innerHTML = arrX[2];
document.getElementById("DataAreaXb").innerHTML = arrX[1]*arrX[2];
}

函数从我有 var arr1 = ["Incidents", Sinc, 0, 0]; 的 7 个数组中获取数据,直到 arr7(arrX[1] 在 vars 中分配了值。)

并且它应该将 DataAreaXaDataAreaXb 值放入相应的 spans 中,显示 onclick 执行后的值 <span id=DataArea1a name=a><span id=DataArea1 name=a>再次直到 DataArea7aDataArea7b.

不幸的是我得到 "Unable to get value of the property 'innerHTML': object is null or undefined"。

我试图在 onload 部分初始化 DataAreaXaDataAreaXb 但写了 14 次毫无意义。 我也尝试过 for,但我想我做的不对。

for (X=1; X<7;X++){
document.getElementById("DataAreaXa")
document.getElementById("DataAreaXb")
}

甚至

for (X=1; X<7;X++){
document.getElementById("DataArea"+X+"a")
document.getElementById("DataArea"+X+"b")
}

我什至可以使用函数 运行 为 XaXb 7 次而不是写 14 次吗?

谢谢。米

首先,您需要在输入 ID 周围加上引号

<input id="runbutton"  type="button" value="&#8594;" onClick="runScriptUp(DataArea1a,DataArea1b,arr1)">

其次,您的 ID 为 "DataAreaXa" 的元素在哪里,您在代码中的任何地方都没有这个元素,也没有解释它。您解释了您如何拥有一个名为 span 的跨度,但您没有提供任何代码来证明这一点。所以当你这样做时

document.getElementByID("DataArea"+X+"a")

这等于未定义,因为您没有使用该 ID 创建元素。

第三,如果你想包含 7,你的循环将需要转到 X<=7

第四,你应该初始化循环中使用的变量。

for(var X=0;X<=7;X++)

浏览器可能会忽略错误 1、3 和 4,但如果您没有 ID 为 DataArea1a 的元素,那么您会从 document.getElementByID

尝试在你的函数中替换

document.getElementById("DataAreaXa").innerHTML = arrX[2];

来自

document.getElementById(DataAreaXa).innerHTML = arrX[2];

希望对您有所帮助!