javascript - 获取父节点标签名

标签 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%';
        }
    });
}

最佳答案

您有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%';
            }
        });
    })

关于javascript - 获取父节点标签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671106/

相关文章:

python - PyQt - 如何正确使用 "setStyleSheet"方法?

asp.net - 正确使用标签前缀和标签名称?

javascript - jQuery/javascript 替换标签类型

javascript - 如何在 iPython Notebook 中渲染 Dygraph?

javascript - 如何避免声音管理器2中的声音延迟

reactjs - 如何在自动完成 Material UI 中的 NoOptionsText 上应用样式

jQuery 查找输入类型(也适用于选择)

javascript - Highcharts - 仅更改点击列的颜色

javascript - 加载 HTML 页面 (JavaScript)

html - 如何柔化 html 边框颜色(不要太不透明)