我正在浏览javascript中的循环,查看页面上的项目列表,其数量可能会有很大差异。我需要在每次循环时为每个项目分配一个document.getElementById(id)到一个不同的变量名。每个项目都有一个数字ID。
例如
第一次通过循环id1 = document.getElementById(id1);
第二次通过循环id2 = document.getElementById(id2);
我在getElementById(id1)中的变量名称工作正常,但它是开头的变量名,我无法工作。我已经尝试了数组和对象,通常只有列表中的最后一项才能工作。
我可以轻松地指定我想要用作变量的名称,但我无法弄清楚如何告诉Javascript语句开头的名称是变量而不仅仅是静态文本字符串。
在发布此答案之前我做了很多搜索,但我看不出类似帖子的答案是如何解决我的问题的。对不起,我是Javascript的新手。
这是我现在的代码缩短版本 - 我已经回去尝试使用数组了。
var listItemDivs = document.getElementsByClassName("list_item_divs");
numberOfItems = listItemDivs.length;
if(numberOfItems>0){
var radioButton = [];
for(var i = 0; i < numberOfItems; i++){
var id = listItemDivs[i].id;
var radioButtonId = "first_item_id"+id;
radioButton[id] = document.getElementById(radioButtonId);
radioButton[id].onclick = function(){
//some code
};//end function
}//end for
}//end if
对document.getElementById(radioButtonId)的引用现在正常工作但onclick函数不正常 - 无论我单击列表中的哪个项目,它都会影响列表中的最后一项。