首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取parentNode tagName

获取parentNode tagName
EN

Stack Overflow用户
提问于 2013-05-21 21:19:15
回答 1查看 6.7K关注 0票数 2

我不能从这段代码中获得parentNode.tagName,也不能把一些样式放到li标签中。

代码语言:javascript
复制
// 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%';
        }
    });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-21 21:26:58

您使用的是parenNode而不是parentNode,而且您似乎是在为该属性赋值,该属性是只读的。

代码语言:javascript
复制
    // ---------------------v             v---assignment won't work
var imageParent = this.parentNode.tagName = 'li';

如果您只是想要父级,那么就没有理由去搞乱.tagName

代码语言:javascript
复制
var imageParent = this.parentNode;
imageParent.style.width = '50%';

而且,我不知道您要将新的<img>附加到DOM的什么地方。如果它没有被追加,它将不会有父级。

也许你想要得到原始图像的父级。为此,每个load()处理程序都需要关闭当前的iimg。您可以使用.each()来完成此任务。

代码语言:javascript
复制
$('.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%';
            }
        });
    })
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16671106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档