获取parentNode tagName

时间:2013-05-21 13:19:15

标签: 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/>").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%';
        }
    });
}

1 个答案:

答案 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()处理程序都需要关闭当前的iimg。您可以使用.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%';
            }
        });
    })