ajax 获取class,用ajax获取json数据。页面上显示节点已经成功创建。但获取类名,控制台显示该对象集合长度为0,为什么长度为0?...

控制台报错里三个都是404,就是找不到文件而已。节点长度为0我觉得是执行时机的问题,因为Ajax是异步回调的,也就是说,你这个下边的$(".typechange");在执行时,$.get的回调并不一定就是已经执行完的状态,并且我觉得这么大段的innerHTML,执行时间大概够$(".typechange");跑好几圈了。如果想看到打印出对象,把这个$(".typechange");写到Ajax回调里就好~

另外提两个点:

var ajaxrun = function(){}然后再跟ajaxrun();这里感觉没什么必要,建议精简掉以减小代码阅读的难度;

这么大段的innerHTML,建议你改用$()逐个包装缓存,再一次性append进去的方式或者干脆,用模版写法吧。

加个修改后的(中间的字串拼接没动):

function selectTab() {

$.get('jason2.json')

.done(function (data) {

var imgDta = data;

var html = '';

for (var i = 0; i < imgDta.length; i++) {

// console.log("wo de"+imgDta.length)

html += '

' +

'

';

for (var k = 0; k < imgDta[i].round.length; k++) {

html += '' +

''%20+%20imgDta%5Bi%5D.round%5Bk%5D.pic1%20+%20'' +

'' +

'' +

''%20+%20imgDta%5Bi%5D.round%5Bk%5D.pic2%20+%20'' +

'' +

'' +

''%20+%20imgDta%5Bi%5D.round%5Bk%5D.pic3%20+%20'' +

'';

}

html += '

' +

'

' +

'

  • ';

html += '

' +

'' +

''%20+%20imgDta%5Bi%5D.round%5B0%5D.pic4%20+%20'' +

'' +

'

' +

'

' +

'' +

''%20+%20imgDta%5Bi%5D.round%5B0%5D.pic5%20+%20'' +

'' +

'

' +

'

' +

'' +

''%20+%20imgDta%5Bi%5D.round%5B0%5D.pic6%20+%20'' +

'' +

'

' +

'

' +

'' +

''%20+%20imgDta%5Bi%5D.round%5B0%5D.pic7%20+%20'' +

'' +

'

' +

'

' +

'' +

''%20+%20imgDta%5Bi%5D.round%5B0%5D.pic8%20+%20'' +

'' +

'

' +

'

' +

'' +

''%20+%20imgDta%5Bi%5D.round%5B0%5D.pic9%20+%20'' +

'' +

'

' +

'

' +

'' +

''%20+%20imgDta%5Bi%5D.round%5B0%5D.pic10%20+%20'' +

'' +

'

';

html += '

' +

'

' +

'

';

}

$('.typechangeWrap').append(html);

})

.done(function () {

var typechange = $('.typechange');

console.log(typechange)

});

}

selectTab();

又改了一版不过好像有点晚了……

function selectTab() {

$.get('jason2.json')

.done(function (data) {

var imgDta = data;

var html = [];

$.each(imgDta, function (i, val) {

// 构造几个包装对象

var typechange = $('

').addClass('typechange');

var mArea = $('

').addClass('m-area');

var rArea = $('

').addClass('r-area');

// 第一部分

$.each(imgDta[i].round, function (j, pic) {

var pic1 = $('').attr('src', pic.pic1).wrap('');

var pic2 = $('').attr('src', pic.pic2).wrap('');

var pic3 = $('').attr('src', pic.pic3).wrap('');

mArea.append(pic1, pic2, pic3);

});

// 第二部分

var iii = val.round[0]; // 缓存下偷个懒

var pic4 = $('').attr('src', iii.pic4).wrap('

');

var pic5 = $('').attr('src', iii.pic5).wrap('

');

var pic6 = $('').attr('src', iii.pic6).wrap('

');

var pic7 = $('').attr('src', iii.pic7).wrap('

');

var pic8 = $('').attr('src', iii.pic8).wrap('

');

var pic9 = $('').attr('src', iii.pic9).wrap('

');

var pic10 = $('').attr('src', iii.pic10).wrap('

');

rArea.append(pic4, pic5, pic6, pic7, pic8, pic9, pic10);

// 拼装

typechange.append(mArea, rArea);

// 缓存

html.push(typechange);

});

$('.typechangeWrap').append(html);

}).fail(function(){

console.error('!!!ERROR');

}).done(function () {

var typechange = $('.typechange');

console.info('--- typechange ---');

console.dir(typechange);

});

}

selectTab();

没有json文件所以并没跑测试……题主留着参考吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值