You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问JS/jQuery生成的动态元素?Bootstrap-table初始化前设置select默认值

解决Bootstrap-table渲染前为动态select设置默认选中值的问题

问题场景

用jQuery 3.6搭配Bootstrap-table 1.21.3开发时,需要在Bootstrap-table开始渲染前,给id为jails的select控件设置默认选中值。

已经搞定了select的change事件逻辑,但页面加载时死活设置不上默认值;试过各种方法访问动态生成的option元素,全失败了。

解决方法

最终把AJAX的async属性设为false就解决了——原因很简单,AJAX默认是异步模式,这时候设置默认值的代码会在AJAX请求完成、option元素生成前执行,自然找不到元素。把async改成false后,AJAX会同步执行,等动态option生成完毕,再去设置默认值就能正常访问元素了。

代码示例

原来的异步AJAX(无法生效)

$.ajax({
  url: '/api/get-options',
  type: 'GET',
  success: function(res) {
    // 动态生成select的option
    $.each(res.data, function(i, item) {
      $('#jails').append(`<option value="${item.id}">${item.name}</option>`);
    });
  }
});
// 此时AJAX还没完成,option还没生成,设置无效
$('#jails').val('target-value');

修改后的同步AJAX(正常生效)

$.ajax({
  url: '/api/get-options',
  type: 'GET',
  async: false, // 核心修改:开启同步模式
  success: function(res) {
    // 动态生成select的option
    $.each(res.data, function(i, item) {
      $('#jails').append(`<option value="${item.id}">${item.name}</option>`);
    });
  }
});
// AJAX执行完毕,option已生成,可正常设置默认值
$('#jails').val('target-value');

内容的提问来源于stack exchange,提问作者Dmitry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:35:09