jQuery:使用对象设置元素的“样式”属性

前端之家收集整理的这篇文章主要介绍了jQuery:使用对象设置元素的“样式”属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在另一天在我们的代码库中看到了这一点:
link.attr('style',map({
                color: '#9a4d9e',cursor: 'default'
            }));

地图定义为:

function map(map) {
    var cssValue = [];

    for (var o in map) {
        cssValue.push(o + ':' + map[o] + ';')
    }

    return cssValue.join(';');
}

是地图必然吗?有更短的方法来做到这一点吗?

重要的是要注意,“style”属性会覆盖由“class”属性添加/定义的类设置的任何样式.

解决方法

可能不会.更好的解决方案可能是使用CSS:
link.css({color: '#9a4d9e',cursor: 'default'});

但是,.attr(‘style’,)也会删除以前的内联样式,因此它的行为不完全相同.
如果要使用attr,它的输入应该是一个字符串,而不是一个对象,它不是专门用于使用style属性.在这种情况下的另一种选择是:

link.attr('style',"color:'#9a4d9e';cursor:'default'");

在这种情况下看起来更干净.在其他情况下,您的地图可以更容易地将变量插入到CSS中.
地图可能被命名得更好.它也有一个实现错误 – 它在属性之间添加双分号:color:red ;; cursor:default;

删除预览样式的简单解决方案是在调用css之前调用.removeAttr(‘style’).

猜你在找的jQuery相关文章