假设我有一个像这样的数组,它被追加到如下的ul中
data['productDetailOptions'] = ['red', 'blue', 'big', 'small', 'medium'];
$('.cart-productDetailOptions ul').append(data['productDetailOptions']);
上面发生的事情没有
li
标记,我知道我可以肯定地使用for循环遍历每个数组并添加标记,然后将它们分配给新变量。我想知道是否有更简单,更短的方法,所以我不必使用循环?
编辑:我不好,我应该说使用for循环以外的任何其他方式。抱歉造成误会
最佳答案
每个数组都有.map
方法,所以对我来说最有效的方法是这样的:
$('.cart-productDetailOptions ul').append(data['productDetailOptions'].map( item => "<li>"+item+"</li>" ) );
注意:我正在使用ES6箭头功能。哪一个等效:
$('.cart-productDetailOptions ul')
.append( data['productDetailOptions'].map( function(item) {
return "<li>"+item+"</li>"
} ) );
注2:感谢@Dora的评论。实际上是
$(..).append
accepts both Array and string,因此.join
是不必要的。