jQuery:使用对象设置元素的 'style' 属性

标签 jquery dictionary coding-style

前几天我在我们的代码库中看到了这一点:

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

map 定义为:

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

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

    return cssValue.join(';');
}

map 是必须的吗?有没有更短的方法来做到这一点?

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

最佳答案

可能不是。更好的解决方案可能是使用 CSS:

link.css({color: '#9a4d9e',
          cursor: 'default'});

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

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

在这种情况下看起来更干净。在其他情况下,map 可以更轻松地将变量插入到 CSS 中。
不过,map 的命名本来可以更好。它还存在一个实现错误 - 它在属性之间添加了双分号:color:red;;cursor:default;

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

关于jQuery:使用对象设置元素的 'style' 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2762775/

相关文章:

javascript - 是否可以使用数据类型 "data:application/vnd.ms-excel"写入多个工作表

javascript - 通过 PHP 中的类字段填充 HTML 输入类型

javascript - Chrome 和 Firefox 以及浏览器在解析字符串的方式上有什么区别吗?

c - int[]是什么意思

jquery - 如何更改 jquery ui 对话框按钮颜色?

python - 从python字典中删除重复的键但连接重复键的值

swift - 为什么 Dictionary.map 返回一个元组数组,它​​在哪里记录?

Python 字典不理解

c# - 与 Linq xxxOrDefault 的结果进行比较时,是否使用 default(string) 是一种常见的习惯用法?

java - 为 Sql 构造动态搜索条件的最佳方法