0

我有以下 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_idand $quiz_level_reached)时,我需要找出如何使用数组中的数据。

4

1 回答 1

0

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

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);
}
于 2012-12-28T01:32:28.637 回答