hyis Yoo
2019-05-28 09:35
采纳率: 17.4%
浏览 369

jQuery的ajax异步请求问题

图片说明

如图,我在使用getJSON获取数据后添加dom元素时出现了一个异步请求问题,我想要的效果是获取数据然后添加dom,但是实际效果是,打印append前后元素是有效果的,但是页面上不渲染,我该怎么做啊?不想使用添加async: false,求大佬给个建议
图片说明

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 听楼一夜雨 2019-05-28 11:17
    已采纳

    看起来没有问题,看看是不是用了什么前端框架比如esayui之类的,这些框架一般都需要加入特定的class或者还需要执行一个重新渲染表单的操作

    已采纳该答案
    打赏 评论
  • 老铁咖啡 2019-05-28 09:50
    //页面加载完毕后执行
    $(document).ready(function(){
        //ajax
    })
    
    
    打赏 评论
  • 张兴华(MarsXH.Chang) 2019-05-28 09:57

    首先在for循环里面,你需要

    let option = document.createElement("option");
    option.value = res.data[index].type_id;
    option.innerHTML = '#' + res.data[index].type_name;
    $(".main-select").append(option);
    

    for循环外面的就不要了 在里面直接append,
    注意只有 dom 节点对象才能 append 进去

    打赏 评论
  • Athain 2019-05-28 10:06

    DOM树跟页面渲染的分开的,所以会出现这种DOM修改了,但是页面没有显示出来。可以考虑通过setTimeout来调用。
    function a(html){
    $(".main-select").append(html);
    window.setTimeout(function(){console("a");},0);
    }
    大概这样就可以了。

    打赏 评论

相关推荐 更多相似问题