如何初始化javascript中的一个参数? document.getElementById("DataAreaXa")
How to initialize a parameter in javascript? document.getElementById("DataAreaXa")
当 运行 运行我的脚本时,我得到“无法获取 属性 'innerHTML' 的值:对象为 null 或未定义 ” .
根据我在这个论坛上找到的,我需要初始化一个参数。
我的应用程序中有几个按钮 <input id=runbutton type="button" value="→" 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] 在 var
s 中分配了值。)
并且它应该将 DataAreaXa
和 DataAreaXb
值放入相应的 span
s 中,显示 onclick
执行后的值 <span id=DataArea1a name=a>
和 <span id=DataArea1 name=a>
再次直到 DataArea7a
和 DataArea7b
.
不幸的是我得到 "Unable to get value of the property 'innerHTML': object is null or undefined"。
我试图在 onload
部分初始化 DataAreaXa
和 DataAreaXb
但写了 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")
}
我什至可以使用函数 运行 为 Xa
和 Xb
7 次而不是写 14 次吗?
谢谢。米
首先,您需要在输入 ID 周围加上引号
<input id="runbutton" type="button" value="→" 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];
希望对您有所帮助!
当 运行 运行我的脚本时,我得到“无法获取 属性 'innerHTML' 的值:对象为 null 或未定义 ” .
根据我在这个论坛上找到的,我需要初始化一个参数。
我的应用程序中有几个按钮 <input id=runbutton type="button" value="→" 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] 在 var
s 中分配了值。)
并且它应该将 DataAreaXa
和 DataAreaXb
值放入相应的 span
s 中,显示 onclick
执行后的值 <span id=DataArea1a name=a>
和 <span id=DataArea1 name=a>
再次直到 DataArea7a
和 DataArea7b
.
不幸的是我得到 "Unable to get value of the property 'innerHTML': object is null or undefined"。
我试图在 onload
部分初始化 DataAreaXa
和 DataAreaXb
但写了 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")
}
我什至可以使用函数 运行 为 Xa
和 Xb
7 次而不是写 14 次吗?
谢谢。米
首先,您需要在输入 ID 周围加上引号
<input id="runbutton" type="button" value="→" 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];
希望对您有所帮助!