我找不到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%';
}
});
}
您有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%';
}
});
})