如何使用阵列中的特定数据-单击示例

How to use specific data from arrays - Example of click

本文关键字:数据 单击 何使用 阵列      更新时间:2023-09-26

我有以下JQuery代码:

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(使用html5发送数据):

<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>

问题是,我需要找出如何使用数据在数组test时,用户单击特定的行(我想使用$quiz_list_id$quiz_level_reached)。

除非您提取属性并将它们放入数组中有特定的原因,否则我认为您正在采取一些不必要的步骤来实现您想要的结果。除去复杂性,您可以在访问元素jQuery对象的任何时候使用.data()方法访问数据属性,其中一次是在单击处理程序本身。

var quizRows = $(".quiz_list_row");
quizRows.click(function(event) {
    var self = $(this);
    //As the element clicked on has it's data attributes defined
    //You would just need to retrieve it when the element is clicked on
    var id = self.data('quizlist-id'),
        level = self.data('quizlevel-reached');
    console.log("id is " + id);
    console.log("level is " + level);
}