无法使用 jquery 获取 datalist 中的数组数据

Posted

技术标签:

【中文标题】无法使用 jquery 获取 datalist 中的数组数据【英文标题】:unable to fetch array data in datalist using jquery 【发布时间】:2021-10-06 12:42:28 【问题描述】:

我正在尝试使用 Jquery 从数据列表中的数组中获取数据,但它不起作用。我正在正确获取数组中的数据。我尝试过forEach 循环、for 循环甚至while 循环。对于forwhile 循环,我得到了错误

Uncaught SyntaxError: Unexpected token 'while'/'for'

$.each 循环中,我得到的结果是用逗号分隔的一行。

这是我在数组中获取和显示数据的代码

var salesman_datalist = [];
for(var i = 0; i<=10; i++)
    if(data['salesman'][i])
        salesman_datalist[i] = data['salesman'][i];
    

console.log(salesman_datalist);

这是while循环的代码

j = 0;
cols += '<td class="col-sm-2"><input list="salesmanlist"><datalist id="salesmanlist">'+while(j <= salesman_datalist.length) + '<option value="01">'+val+'</option></br>'+ j=j+1  + '</datalist></td>';

for for 循环使用正确的语法 这是foreach循环的代码

cols += '<td class="col-sm-2"><input list="salesmanlist"><datalist id="salesmanlist">'+$.each(salesman_datalist,function(val) + '<option value="01">'+val+'</option></br>' ) + '</datalist></td>';

但在这里我收到了它的结果:

<datalist id="salesmanlist">usama,0.02,ali,0.01,Ali,,Usama Shakeel,,Haider,0.22</datalist>

【问题讨论】:

while 是一个语句,而不是一个表达式。您不能将其用作子表达式。 @Barmar:那么可能的解决方案或语法是什么? 【参考方案1】:

使用.map() 遍历数组,使用.join() 将结果连接成一个字符串。

cols += '<td class="col-sm-2"><input list="salesmanlist"><datalist id="salesmanlist">'+
    salesman_datalist.map(val => '<option value="01">'+val+'</option>').join('<br>') + 
    '</datalist></td>';

【讨论】:

以上是关于无法使用 jquery 获取 datalist 中的数组数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery 在 datalist 中仅采用最后五个选项并清除 datalist 中的所有其他选项?

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

Jquery Ajax 如何实现动态加载Repeater 或者 DataList

如何在Page_Load()里获取DataList里的控件值?

jquery easyui datagrid 分页怎么把右边的文字去掉

jQuery无刷新传入DataList数据源