【发布时间】:2012-12-27 23:48:51
【问题描述】:
检查此代码:
var test = new Array();
//I need each() to get the data from every row
$(".quiz_list_row").each(function(index){
// Gets the data necessary from HTML5 tag data
$quiz_list_id = $(this).data("quizlistId");
$quiz_level_reached = $(this).data("quizlevelReached");
test [0] = new Array($quiz_list_id,$quiz_level_reached);
$(this).click(function(){
alert("test: "+test.toString());
});
)};
div是这样的(没错):
<div class="quiz_list_row" data-quizlist-id="1" data-quizlevel-reached="5">
<div class="inline" id="quiz_list_cell_id1">Quiz 1</div>
<div class="inline" id="quiz_list_cell_id2">Current level: 5</div>
</div>
<div class="quiz_list_row" data-quizlist-id="2" data-quizlevel-reached="7">
<div class="inline" id="quiz_list_cell_id1">Quiz 2</div>
<div class="inline" id="quiz_list_cell_id2">Current level: 7</div>
</div>
所以当我点击第一个 div 时,应该在第一个警报上显示“1,5”,在第二个警报上显示“2,7”,我得到相反的结果。
【问题讨论】:
-
我看到覆盖“测试”'我必须修复它 =)
-
忽略语法错误,单击任意位置时应显示“2,7”。循环的每次迭代都会覆盖相同的
test[0]数组。 -
我不认为它会导致这个问题,但 HTML ID 必须是唯一的。目前,您有两个 ID 为
quiz_list_cell_id1的元素和两个 ID 为quiz_list_cell_id2的元素。这是无效的 HTML,以后可能会让您头疼。 -
你没有得到相反的顺序。你总是得到 2,7。请解释您要达到的目标..
-
@GabyakaG.Petrioli 我知道这看起来很奇怪,但实际上我在第一次点击后得到了 1,5!