我有以下代码:
for ( j = 0; j < albums[0].imagesNumber; j++ ) {
k = albums[0].imagesNumber * 170;
$('.body-album-expanded-inner').css({ width: k + 'px' });
document.getElementsByClassName('body-album-expanded-inner')[0].
appendChild(albumsImages[0][j]);
}
哪里albumsImages
包含一些images
和albums[].imagesNumber
只是告诉我 album
中有多少张图像。当我使用 javascript 的appendChild 时,一切工作正常,但是当我使用 jQuery 的append 时,如下所示:
$('.body-album-expanded-inner')[0].
append(albumsImages[0][j]);
它给了我这个错误:
TypeError: $(...)[0].append is not a function
最佳答案
这是因为您使用的索引器会转换为原生 DOM 元素。使用eq(0)
或first()
$('.body-album-expanded-inner').eq(j). // or simply first()
append(albumsImages[0][j]);
另一个选择是用 jQuery 再次包装它,但这有点过头了。不管怎样
$($('.body-album-expanded-inner')[j]). //now it's jQuery since its wrapped inside $()
append(albumsImages[0][j]);
如果它是单个元素,那么您不需要任何东西,只需使用 append
jQuery
接受原生 DOM 元素并给出 jQuery
具有诸如 append
之类的方法的对象,但不是appendChild
,同样原生元素不会有 jQuery
具体方法如append
但只有appendChild
.
关于jQuery 追加不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27382669/