无法使用 jquery 获取 datalist 中的数组数据
Posted
技术标签:
【中文标题】无法使用 jquery 获取 datalist 中的数组数据【英文标题】:unable to fetch array data in datalist using jquery 【发布时间】:2021-10-06 12:42:28 【问题描述】:我正在尝试使用 Jquery 从数据列表中的数组中获取数据,但它不起作用。我正在正确获取数组中的数据。我尝试过forEach
循环、for
循环甚至while
循环。对于for
和while
循环,我得到了错误
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里的控件值?