通过Javascript问题创建选项标记

通过Javascript问题创建选项标记,javascript,jquery,html,asp.net,razor,Javascript,Jquery,Html,Asp.net,Razor,我正在使用AJAX从数据库中获取一些数据,在AJAX成功后,我试图通过JavaScript创建标记,但它似乎不起作用,在DOM中什么也没有发生,我不明白为什么 $(“#客户端组合”)。关于(“更改”,函数(){ $.ajax({ url:“/Account/GetBrands”, 数据:{clientID:$(“#clientCombo”).val()}, 数据类型:“json”, 成功:功能(结果){ if(result.error==未定义){ var brandList=结果; var

我正在使用AJAX从数据库中获取一些数据,在AJAX成功后,我试图通过JavaScript创建
标记,但它似乎不起作用,在DOM中什么也没有发生,我不明白为什么

$(“#客户端组合”)。关于(“更改”,函数(){
$.ajax({
url:“/Account/GetBrands”,
数据:{clientID:$(“#clientCombo”).val()},
数据类型:“json”,
成功:功能(结果){
if(result.error==未定义){
var brandList=结果;
var brandCombo=$(“#brandCombo”);
var brandOption=$(“+”someString+“+”);
html(brandOption);
对于(变量i=0;ibrandCombo+=(“在创建选项字符串并在循环后使用
.html()
时,您没有使用正确的变量brandOption

var brandOption = $("<option value=\"none\">"+"someString+"+"</option>");   
for (var i = 0; i < brandList.length; i++) {
    brandOption+=("<option value=\""  + brandList[i].brandID +  ">" + brandList[i].brandName + "</option>");
}
brandCombo.html(brandOption); //Once options string is completely created
var brandOption=$(“+”someString++”);
对于(变量i=0;i
检查循环

brandOption+="<option value=\""  + brandList[i].brandID +  "\">" + brandList[i].brandName + "</option>";
brandOption+=“”+brandList[i].brandName+“”;

使用此问题将得到解决

而不是字符串串联,您应该使用Jquery内置函数-将参数指定的内容插入到匹配元素集中每个元素的末尾

$('#brandCombo').append('<option value='+brandList[i].brandID+'>'+brandList[i].brandName+'</option>')
试试下面的代码

$(document).on("change","#clientCombo", function () {
    $.ajax({
        url: "/Account/GetBrands",
        data: { clientID: $("#clientCombo").val() },
        dataType: 'json',
        success: function (result) {
            if (result.error == undefined) {
                var brandList = result; 

            var brandCombo= $('<select>');
            for (var i=0;   i<brandList.length  ;i++) 
            {
                 brandCombo.append( $('<option><option>').val(brandList[i].brandID).html(brandList[i].brandName) );
              }
             $('#brandCombo').append(brandCombo.html());


            }
            else {
                $("#brandCombo").html("<option value=\"none\">choose</option>");
            }

    });
});
$(document).on(“更改”,“客户端组合”,函数(){
$.ajax({
url:“/Account/GetBrands”,
数据:{clientID:$(“#clientCombo”).val()},
数据类型:“json”,
成功:功能(结果){
if(result.error==未定义){
var brandList=结果;
var brandCombo=$('');

对于(var i=0;我不使用html()方法或“+=”运算符。仅使用append(htmlString)方法。例如$(“#brandCombo”).append('Select Me');遗憾的是,它不起作用,尽管我认为代码中没有问题
$('#brandCombo').empty()
$(document).on("change","#clientCombo", function () {
    $.ajax({
        url: "/Account/GetBrands",
        data: { clientID: $("#clientCombo").val() },
        dataType: 'json',
        success: function (result) {
            if (result.error == undefined) {
                var brandList = result; 

            var brandCombo= $('<select>');
            for (var i=0;   i<brandList.length  ;i++) 
            {
                 brandCombo.append( $('<option><option>').val(brandList[i].brandID).html(brandList[i].brandName) );
              }
             $('#brandCombo').append(brandCombo.html());


            }
            else {
                $("#brandCombo").html("<option value=\"none\">choose</option>");
            }

    });
});