【问题标题】:Getting opposed order as result [closed]结果得到反对的命令[关闭]
【发布时间】: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!

标签: jquery arrays click each


【解决方案1】:

你在循环的每一次传递中都写完了test[0]

尝试将test[0]= 替换为:

test.push([$quiz_list_id,$quiz_level_reached])

【讨论】:

  • 感谢您的建议! =)
【解决方案2】:

以下是我所做的更改:

var test = new Array();

$(".quiz_list_row").each(function(index){
        // Gets the data necessary to show game chosen
        $quiz_list_id = $(this).data("quizlistId");
        $quiz_level_reached = $(this).data("quizlevelReached");

            test.push($quiz_list_id,$quiz_level_reached);

        $(this).click(function(){
            alert("test: "+test);
        });

});

div:

<div class="quiz_list_row" data-quizlist-id="1" data-quizlevel-reached="5">
    <div class="inline quiz_list_cell" id="quiz_list_cell_row0_id1">Quiz 1</div>
    <div class="inline quiz_list_cell" id="quiz_list_cell_row0_id2">Current level: 5</div>
</div>
<div class="quiz_list_row" data-quizlist-id="2" data-quizlevel-reached="7">
    <div class="inline quiz_list_cell" id="quiz_list_cell_row1_id1">Quiz 2</div>
    <div class="inline quiz_list_cell" id="quiz_list_cell_row1_id2">Current level: 7</div>
</div>

学分在 cmets 上,好吗?

【讨论】:

    猜你喜欢
    • 2018-09-18
    • 1970-01-01
    • 2012-01-11
    • 2017-03-03
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    相关资源
    最近更新 更多