我不能从这段代码中获得parentNode.tagName,也不能把一些样式放到li标签中。
// path to catalog images
var img = $('.catalog ul li > img');
for (i = 0; i < img.length; i++) {
var pic_real_width;
// Make in memory copy of image to avoid css issues
$("<img/>").attr("src", $(img[i]).attr("src")).load(function () {
pic_real_width = this.width;
if (pic_real_width > 500) {
// this part of code not work
var imageParent = this.parenNode.tagName = 'li';
imageParent.style.width = '50%';
}
});
}发布于 2013-05-21 21:26:58
您使用的是parenNode而不是parentNode,而且您似乎是在为该属性赋值,该属性是只读的。
// ---------------------v v---assignment won't work
var imageParent = this.parentNode.tagName = 'li';如果您只是想要父级,那么就没有理由去搞乱.tagName。
var imageParent = this.parentNode;
imageParent.style.width = '50%';而且,我不知道您要将新的<img>附加到DOM的什么地方。如果它没有被追加,它将不会有父级。
也许你想要得到原始图像的父级。为此,每个load()处理程序都需要关闭当前的i或img。您可以使用.each()来完成此任务。
$('.catalog ul li > img')
.each(function(i, img) {
var pic_real_width;
$("<img/>").attr("src", $(img).attr("src")).load(function () {
pic_real_width = this.width;
if (pic_real_width > 500) {
var imageParent = img.parentNode;
imageParent.style.width = '50%';
}
});
})https://stackoverflow.com/questions/16671106
复制相似问题