用ajax从服务器获取列表数据,为什么getElementsByTaName('li')的长度为0呢

发布于 2022-09-01 17:18:45 字数 18 浏览 10 评论 0

是获取后端json数据

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

寄人书 2022-09-08 17:18:45

从后端获取数据和getElementsByTagName有啥关系,还有。。要贴代码

無處可尋 2022-09-08 17:18:45

bytag吧

旧人 2022-09-08 17:18:45

代码贴出来看看

煞人兵器 2022-09-08 17:18:45

得等到加入DOM后才能操作吧,还有你是不是提前获取了DOM元素?比如列表是一个ID为1的div,在ajax获取完后加进DOM后要重新获取1,你在Ajax前的1只包含Ajax前的DOM结构。

£噩梦荏苒 2022-09-08 17:18:45

我的意思是 从服务器端获取数据然后创建节点;但是不能得到这些节点,在所有文本都加载完成后还是不能,列表已经在页面显示了

代码如下
ajax({

method : 'get',
url : 'http://study.163.com/webDev/couresByCategory.htm',
data : {
    'pageNo':'1',
    'psize':'20',
    'type':'10'
},
success : function (data) {
    console.log(data);
    var _data= JSON.parse(data);

    var oDiv = document.getElementById("courseList");

    for(i=0;i<_data.list.length;i++){
        var oLi = document.createElement("li");
        oDiv.appendChild(oLi);

        var _img = document.createElement("img");
        var _name = document.createElement("p");
        var _provider = document.createElement("p");
        var _count = document.createElement("p");
        var _price = document.createElement("p");

        _img.setAttribute("src", _data.list[i].middlePhotoUrl);
        _name.innerHTML=_data.list[i].name;
        _provider.innerHTML=_data.list[i].provider;
        _count.innerHTML=_data.list[i].learnerCount;
        _price.innerHTML="¥"+_data.list[i].price;

        oLi.appendChild(_img);
        oLi.appendChild(_name);
        oLi.appendChild(_provider);
        oLi.appendChild(_count);
        oLi.appendChild(_price);
       
        _name.setAttribute('class','courseName');
        _provider.setAttribute('class','courseProvider');
        _count.setAttribute('class','peopleCount');
        _price.setAttribute('class','coursePrice');
    }
},
async : true

});

过去的过去 2022-09-08 17:18:45

既然是异步的……那么你只能在success的回调里面选择元素吧。在你贴出来的代码里我好像没看到……?
提供一个思路:在你的document.getElementByTagName之前打个alert阻止脚本运行,看看你的列表有没有显示出来……如果显示出来了,那就妥妥的是灵异事件了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文