【发布时间】:2018-03-14 18:59:48
【问题描述】:
我正在构建一个问答游戏,所有的问题、答案选择和正确答案都将存储在按类别排列的不同多维数组中。例如:historyArray 包含所有历史数据等。
我还在前端 UI 中使用引导程序,并且希望能够使用数据属性来引用特定数组,并将该数组中的问题动态加载到按下按钮时将启动的模式中。
这是我目前所拥有的:
HTML:
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#activeQuestion" data-category="historyArray">
Launch Random Question
</button>
<div class="modal fade activeQuestion" id="activeQuestion" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Category Title</h4>
</div>
<div class="modal-body">
<form>
<div class="row">
<div class="col-xs-12 question">
<p></p>
</div>
<div class="col-xs-12 answers">
<ul class="answer-list">
</ul>
</div>
</div>
</form>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
JS:
var historyCount = 0;
$(document).ready(function(){
//$('#activeQuestion').modal('show');
var historyArray = {
'q0' : {
'question': 'Which U.S. President is on the 1,000 dollar bill?',
'a1': 'Ulysses S. Grant',
'a2': 'Grover Cleveland',
'a3': 'William McKinley',
'correct': '1'
}
}
});
$('#activeQuestion').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
var aCat = button.data('category');
console.log(aCat);
})
目前,console.log 只返回数据属性的值,而不是数组。如何在 console.log 中返回数组,然后我可以解析数组,获取问题、答案选择和正确答案,以便显示它们。我试过使用console.log(aCat[0]),但只返回'h',变量名中的第一个字母。
【问题讨论】:
-
historyArray不是数组。它只是一个对象。data('category')将返回一个字符串。其余的,请阅读Convert string to variable name in JavaScript的答案 -
@MikeMcCaughan - 是的,就是这样......我将我的对象重新格式化为一个实际的多维数组,然后在单击按钮并抓住
data attribute后,我运行attribute + "Array"ineval()并且我能够完美地返回数组。
标签: javascript jquery arrays twitter-bootstrap bootstrap-modal