Javascript 获取父节点标记名

Javascript 获取父节点标记名,javascript,styles,tagname,Javascript,Styles,Tagname,我无法从此代码中获取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/>").att

我无法从此代码中获取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%';
        }
    });
}
//目录图像的路径
var img=$('.catalog ul li>img');
对于(i=0;i
您使用的是
parenNode
而不是
parentNode
,并且您似乎正在为该属性赋值,该属性是只读的

    // ---------------------v             v---assignment won't work
var imageParent = this.parentNode.tagName = 'li';

如果您只是想要父标记名,那么就没有理由弄乱
.tagName

var imageParent = this.parentNode;
imageParent.style.width = '50%';

另外,我看不出您在哪里添加了新的
500){
var imageParent=img.parentNode;
imageParent.style.width='50%';
}
});
})

但是您试图在代码中的什么地方读取
parentNode.tagName
?如果没有相关的HTML,我们应该如何帮助您?我建议您做一个小提琴…@Constantyn:是的,请参阅我的更新答案。您从未将新的
附加到DOM,因此它没有父对象(因此它是
null
)。我假设您实际上想要原始图像的父级。我添加了一个解决方案来处理此问题。
$('.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%';
            }
        });
    })