用jquery或JS填充Html.DropDownList

use*_*207 1 javascript jquery

这是我所拥有的:

for (i = 0; i < data.length; i++) {
                $("#myDropDownLisTId").find('tbody')  
                .append($('<option>').attr('value', data[i].id).attr('name', data[i].name)
                );               
            }
Run Code Online (Sandbox Code Playgroud)

但是下拉列表始终保持不变。为什么这不起作用?数据变量具有漂亮的值。另外,我想在for循环之前清空下拉列表/该怎么做?

这是我在视图中的下拉列表:

<%= Html.DropDownList("myDropDownLisTId")%>
Run Code Online (Sandbox Code Playgroud)

idr*_*ood 5

尽管其他答案将完成您希望做的事情,但我还是建议您将选项HTML写入字符串变量,并在循环结束后附加它,而不是在循环中附加。当您的列表变长时,这可能会带来一些明显的性能优势。使用.html()还将照顾每次清空列表。

        var tempList = '';
        for (i = 0; i < data.length; i++) {  
            tempList += '<option value="' + data[i].id + '" name="' + data[i].name +'">' + data[i].text + '</option>';            
        }
        $("#myDropDownLisTId").html(tempList);
Run Code Online (Sandbox Code Playgroud)