动态添加下拉值

时间:2016-08-03 12:42:01

标签: javascript jquery

我有一个下拉标记,如

 <ul class="dropdown-menu">
 <li><a href="#"></a></li>
 </ul>

从服务器端,我得到的值将以逗号分隔的方式添加。

var dropdownMenuItems = "ADD,Substract,Multiply";

现在我想添加上面的值,我写的是

 for (var i = 0; i <= dropdownMenuItems.length; i++)
 {
   $('.dropdown-menu a').add(dropdownMenuItems[i]);
 }

但我在控制台中遇到JavaScript runtime error: Syntax error, unrecognized expression: ,错误。 请帮忙。

3 个答案:

答案 0 :(得分:2)

您需要使用split()将字符串拆分为数组。然后,您需要遍历它并创建lia元素,并append()将它们创建为ul。试试这个:

var arr = "ADD,Substract,Multiply".split(',');
var html = ''
for (var i = 0; i < arr.length; i++) {
  html += '<li><a href="#">' + arr[i] + '</a></li>';
}
$('.dropdown-menu').append(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="dropdown-menu"></ul>

请注意,您应该在<循环中使用<=而非foradd()用于向现有jQuery对象添加元素,而不是在DOM。

答案 1 :(得分:1)

试试这个。它的工作原理

var dropdownMenuItems = "ADD,Substract,Multiply";
var list  = dropdownMenuItems.split(',');
$('.dropdown-menu').html('');
for (var i = 0; i <= list.length; i++)
 {
    $('.dropdown-menu').append('<li><a href="#">' + list[i] + '</a></li>');
 }

答案 2 :(得分:1)

试试这样:

var result = 'ADD,Substract,Multiply';

$('.myClass').html($.map(result.split(','), function(item) 
{
  return $('<option></option>').val(item).html(item)[0].outerHTML
}).join(''));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select class="myClass">
</select>