检查元素样式并添加 class

Check element style and add class

为什么这不起作用?我正在尝试添加一个类,以便我可以向默认的 Magento CMS 图像样式添加填充 - 非常感谢。忽略 j - 它必须存在

if ($j('.cms-page-view .std img').css('float') == 'left') {
            $j('.cms-page-view .std img').addClass('img-left');
        } 
        else if ($j('.cms-page-view .std img').css('float') == 'right') {
            $j('.cms-page-view .std img').addClass('img-right');
        }
        else {
            $j('.cms-page-view .std img').addClass('img-normal');
        }

您应该使用 .each() 在每个元素上下文中添加 类

$j('.cms-page-view .std img').each(function(){
    var elem = $(this); //Here this refers to element in an iteration
    if (elem.css('float') == 'left') {
        elem.addClass('img-left');
    } 
    else if (elem.css('float') == 'right') {
        elem.addClass('img-right');
    }
    else {
        elem.addClass('img-normal');
    }
})

正如 Satpal 所说,您应该使用 for each 循环遍历每个元素,因为 class 选择器将 return 元素列表

$j('.cms-page-view .std img').forEach(function(item){

  if ($j(item).css('float') == 'left') {
        $j(item).addClass('img-left');
    } 
    else if (item).css('float') == 'right') {
        $j(item).addClass('img-right');
    }
    else {
        $j(item).addClass('img-normal');
    }
}
);