检查元素样式并添加类

时间:2016-03-23 10:12:14

标签: jquery magento if-statement element addclass

为什么这不起作用?我正在尝试添加一个clas,这样我就可以为默认的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');
        }

2 个答案:

答案 0 :(得分:2)

您应该使用.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');
    }
})

答案 1 :(得分:2)

正如Satpal所说,你应该使用每个循环迭代每个元素,因为类选择器将返回元素列表

$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');
    }
}
);