使用 jQuery 通过多维数组将 `<option>` 元素提供给 `<datalist>`

Posted

技术标签:

【中文标题】使用 jQuery 通过多维数组将 `<option>` 元素提供给 `<datalist>`【英文标题】:Using jQuery to supply `<option>` elements via multidimensional array to `<datalist>` 【发布时间】:2017-07-27 05:35:27 【问题描述】:

我已经搜索了帖子以找到我想做的解决方案。我想使用 javascript 数组为&lt;datalist&gt; 创建一个列表。我发现了一个对其他人有用的 for 循环,并对其进行了一些修改以使用 2D 数组。我在 JSFiddle 上使用了下面的代码,它可以工作,但是当我将它包含到我的较大代码中时,&lt;datalist&gt; 现在确实会显示,即使代码只是简单地复制并粘贴到我的较大代码中。

另外,我不确定如何将下面的代码更改为 jQuery,如果您能提供帮助,我也将不胜感激。

var test = [
  ['text1',1,2,3,4],
  ['text2',1,2,3,4],
  ['text3',1,2,3,4],
  ['text4',1,2,3,4],
  ['text5',1,2,3,4],
  ['text6',1,2,3,4],
  ['text7',1,2,3,4],
];

var options = '';

for(var i = 0; i < test.length; i++) 
  options += '<option value="'+test[i][0]+'" />';
  document.getElementById('maltList').innerhtml = options;
<input name ="malt" list="maltList"/>
<datalist id="maltList"></datalist>

【问题讨论】:

预期结果是什么? 【参考方案1】:

您可以使用jQuery#append 方法将选项列表(使用Array#maptest 数组中的数据映射)到您的datalist。但是,由于您之前的代码是作为 sn-p 工作的,我不确定这是否真的会在之前失败的任何情况下对您有所帮助。

如果您收到任何错误消息,请告诉我,我会尽力帮助您解决这些问题。

var test = [
  ['text1',1,2,3,4],
  ['text2',1,2,3,4],
  ['text3',1,2,3,4],
  ['text4',1,2,3,4],
  ['text5',1,2,3,4],
  ['text6',1,2,3,4],
  ['text7',1,2,3,4],
]

$('#maltList').append(test.map(function (e) 
  return new Option(e[0])
))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name ="malt" list="maltList"/>
<datalist id="maltList"></datalist>

【讨论】:

感谢您的帮助。 “e”有什么作用? 选择输入框时下拉菜单不存在。 e 只是被迭代数组元素的简写。不知道您所说的下拉菜单不存在是什么意思

以上是关于使用 jQuery 通过多维数组将 `<option>` 元素提供给 `<datalist>`的主要内容,如果未能解决你的问题,请参考以下文章

在jQuery中通过ajax发送多维复选框数组

如何使用 Codeigniter 和 Jquery 验证多维数组

jQuery 创建多维数组

使用jquery将多个输入框的值获取到多维数组中

jquery push 制作多维数组

jQuery 将多维表单数据发送到 PHP 脚本