オブジェクトの配列をループし、オブジェクト変数の名前が関数に渡された要素の id と等しいかどうかを確認し、そうであれば、別のオブジェクトの innerHTML を一致するオブジェクトの nameプロパティに設定します。元。
var samplearray = new Array();
var Guy1 = new Object();
Guy1.name = "Bill";
Guy1.health = 100;
samplearray.push(Guy1);
Guy2.name = "Dan";
Guy2.health = 125;
samplearray.push(Guy2);
//this is all done previously by a function on pageload
function afunction(id){
for (item in samplearray)
{
if (item == id.id){
document.getElementById("changeme").innerHTML=samplearray[item].name;
}
}}
if の「item」は、変数の名前を参照していないようです。カスタム var_dump 関数で確認すると、値が「Guy1」ではなく「11」であることがわかります。理由がわかりません。
編集:
固定 for ループ:
for (var item in samplearray)
{
if (samplearray[item].varname == id.id){
document.getElementById("changeme").innerHTML=samplearray[item].name';
}}