将重复DataTables数据存储在选择下拉列表中
Store repeat DataTables data in select dropdown?
我需要一种优雅的方法来将重复数据存储在DataTables中的select下拉列表中。例如,我有两个问题,每个问题都可以有不同的答案。在这种情况下,问题1(keyno 1)有2个可能的答案,问题2(keyno 2)有3个可能的回答。在fiddle示例中,有5行(包含重复信息),但应该只有2行(每个注释记号一行)。我如何动态创建包含答案的下拉列表,并且只显示我的2行,就像for循环一样?我不确定。
http://jsfiddle.net/s827x/28/
var data = [
{'keyno': '1', 'quest': 'Does a cat meow?', 'ans': 'yes'},
{'keyno': '1', 'quest': 'Does a cat meow?', 'ans': 'no'},
{'keyno': '2', 'quest': 'What color is a stop sign?', 'ans': 'red'},
{'keyno': '2', 'quest': 'What color is a stop sign?', 'ans': 'yellow'},
{'keyno': '2', 'quest': 'What color is a stop sign?', 'ans': 'green'}
]
$('#questtable').DataTable({
"data": data,
"columns": [
{ data: 'keyno' },
{ data: 'quest' },
{ data: 'ans' }
]
});
我最终做的是为我的问题和答案创建一个数组,然后匹配凯恩斯。该表加载问题,在重新绘制时,在清除循环以匹配问题答案后添加下拉选项。:Dhttp://jsfiddle.net/s827x/37/
$('#questtable').DataTable({
"data": quest,
"columns": [
{ data: 'keyno' },
{ data: 'quest' },
{
data: 'ans',
"mRender": function (data, type, full) {
return '<select id="'+full.keyno+'"></select>';
}
}
],
"fnDrawCallback": function () {
$('#questtable tbody tr').each(function () {
for (var i = 0; i < ans.length; i++) {
if ($(this).find('td').eq(0).text() == ans[i].keyno) {
$(this).find('td').eq(2).find('select').append('<option value="' + ans[i].ans + '">' + ans[i].ans+ '</option>');
}
}
});
}
});
相关文章:
- 如何使用jQuery选择下拉列表的值
- Jquery 读取编号组中选择下拉列表的数组
- 使用$_POST值选择下拉列表
- 使用Ajax或JavaScript选择下拉列表选项后,在同一页面上执行PHP脚本
- 根据url填充表单选择下拉列表
- 使 URL 开始选择下拉列表
- 引导程序选择下拉列表
- 如何通过选择下拉列表中的选项从另一个 php 文件中获取数据
- 保持元素处于禁用状态,直到未在 Angularjs 中选择下拉列表
- Knockoutjs - 单击按钮时打开选择下拉列表
- 使用选择下拉列表的性别角度过滤器
- 如何根据选择下拉列表从表单重定向到 URL
- 如果未选择第一项,请选择下拉列表 jQuery
- 选择下拉列表需要在选中时显示提供商的详细信息-无法通过我的脚本显示url
- 使用对象(JavaScript或jQuery)填充选择下拉列表
- 如何在选择下拉列表值的文本框中获取值
- 删除基于先前下拉列表选择的“选择下拉列表”选项
- jQuery验证插件-比较两个选择下拉列表的自定义方法
- 通过ajax选择下拉列表
- JavaScript:使用用于Protractor测试的页面对象选择下拉列表项