2016-08-03 171 views
2

我有一個下拉列表標記像添加下拉值動態

<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: ,。 請幫忙。

回答

2

您需要使用split()將字符串拆分爲數組。然後,您需要循環訪問並創建lia元素,並將其創建爲ul,並將它們創建爲append()。試試這個:你應該使用<for循環不<=,並且add()

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>

注用來元素添加到現有的jQuery對象,而不是建立在DOM內容。

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>'); 
} 
+0

你確定這個工程?循環中的<='意味着迭代次數過多,'add()'不會執行您期望的操作。 –

+0

我已經更新了代碼...現在它工作正常 –

+0

錯過了<=';) –

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>

+0

不錯的解決方案 - 但是您在select中創建'option'元素,而OP在'ul'中清楚地創建'li'。另請注意,如果您需要傳統瀏覽器支持,則