我无法从此代码获取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%';
}
});
}
答案 0 :(得分:3)
您有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%';
}
});
})