Javascript Jquery-each()eq()单击()

Javascript Jquery-each()eq()单击(),javascript,jquery,click,each,var,Javascript,Jquery,Click,Each,Var,我想获取从HTML5接收到的两项数据,并在单击函数和其中的函数中使用它们 我遇到了一个问题,以下是我目前的代码: var test = []; // This is a div class .quiz_list_row the ids are counted as #1 #2 #3... $(".quiz_list_row").each(function(index){ // Gets the data necessary // It comes from data-quiz

我想获取从HTML5接收到的两项数据,并在单击函数和其中的函数中使用它们

我遇到了一个问题,以下是我目前的代码:

var test = [];

// This is a div class .quiz_list_row the ids are counted as #1 #2 #3...
$(".quiz_list_row").each(function(index){
    // Gets the data necessary
    //  It comes from data-quizlist-id (HTML5)
    $quiz_list_id = $(this).eq(index).data("quizlistId");

    //  It comes from data-quizlevel-reached (HTML5)
    $quiz_level_reached = $(this).eq(index).data("quizlevelReached");

    test[index] = $quiz_list_id;

    // testing
    alert("quiz_list_id: " +$quiz_list_id);
    alert("level: "+$quiz_level_reached);

    // click functions
    $(this).click(function(){

        // bla bla
        // alert(test[index]) ???
    });
});

在单击事件周围使用闭包

    // testing
    alert("quiz_list_id: " + $quiz_list_id);
    alert("level: " + $quiz_level_reached);

    // click functions
    (function(num) {
        $(this).click(function() {

            alert(test[num]) ? ? ?
        });
    })(index);

});​
您误用了
.eq()
。试试这个(我已经删除了对
.eq()
的调用):

您可能只需要以下内容:

$(".quiz_list_row").click(function(){
    var $quiz_list_id = $(this).data("quizlistId");
    var $quiz_level_reached = $(this).data("quizlevelReached");

    alert("quiz_list_id: " +$quiz_list_id);
    alert("level: "+$quiz_level_reached);
});

你试过了吗?你有什么问题?@SLaks我试了一下,得到了第一排结果,但没有得到第二排,依此类推..我成功地得到了结果。但是它们是颠倒的,这很奇怪,因为html中的“数据”字段中有有序的数据!我将发送另一个问题。
$quick\u list\u id
$quick\u level\u达到的
未在第一个代码块上定义。@RicardoLohmann这是修改后的操作代码(只需删除
.eq(索引)
)。第二块是修订/重构的解决方案。我确实需要each,因为我想从每一行获取数据。感谢您提供有关eq()的提示!我仍然有一个问题,以获得每一行的结果=/
$(".quiz_list_row").click(function(){
    var $quiz_list_id = $(this).data("quizlistId");
    var $quiz_level_reached = $(this).data("quizlevelReached");

    alert("quiz_list_id: " +$quiz_list_id);
    alert("level: "+$quiz_level_reached);
});