javascript - 如何从 ajax 调用响应中附加 html 标签

标签 javascript jquery html ajax

我有一个ajax函数:

$('#app-name').change(function () {//1
  console.log("inside change");
  var applname= this.value;
  console.log(applname);
  $.ajax({//2
    url: 'foo',
    method : 'GET',
    dataType : "json",
    contentType: "application/json",
    data: {"AppID":"appname"},
    success: function(data){
      var order_data = data;
      $('#foo-name').html('');
      $.each(order_data, function(i, item) {//3
        console.log(order_data[i]);
        $('<option value='+ order_data[i] +'>'+order_data[i]).html('</options>').appendTo('#foo-name');
      });//3 
    }
  });//2
});//1

除了将值附加到 html 之外,该函数正在执行其他所有操作。 我做错了吗?你能帮忙解决这个问题吗?

最佳答案

关闭</option您创建的 jQuery 对象中的标记。不要通过 html() 设置它方法。试试这个:

$('<option value="' + order_data[i] + '">' + order_data[i] + '</option>').appendTo('#foo-name');

也就是说,您还可以通过在循环中构建字符串并将其附加到 select 来提高代码的性能。一次,像这样:

success: function(data) {
    var options = '';
    $.each(data.split(/\n/), function(i, item) {
        options += '<option value=' + item.trim() + '>' + item.trim() + '</option>');
    });
    $('#foo-name').html(options);
}

更新您还需要split()您在循环之前声明要返回的文本。

关于javascript - 如何从 ajax 调用响应中附加 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39252357/

相关文章:

javascript - HTML DOM - 新元素采用错误的值?

jquery - HTML 文件属性问题

html - 如何按比例缩放图像并确保它始终占据屏幕的 40%

javascript - 使用 JavaScript 选择文本框

javascript - 在创建对象时,JavaScript 中调用对象成员函数的正确方法是什么?

javascript - 来自 `triggers.new_booking.operation.perform` 的 Zapier 结果必须是一个对象数组

javascript - 保持图像的 3D 立方体在同一侧继续过渡

jQuery Datatables 插件不保存状态cookie?

html - <caption>标签可以和div一起使用吗?

javascript - JS倒数计时器到特定日期