在javascript中设置css属性

时间:2013-04-29 04:11:58

标签: javascript jquery css

这是我的函数集css属性,如jquery

that.getNode = function() {
    return element;   // element is HTML node
};    


that.css = function(obj) {
    var node = that.getNode(),
        attr;
    if (node && node.style) {
        for (attr in obj) {
            if (obj.hasOwnProperty(attr) && node.style.hasOwnProperty(attr)) {
                node.style[attr] = obj[attr];
            }
        }
    }
    return that;
};

然后我打电话,它通常在Chrome上运行,但无法在IE9或Firefox上运行

that.css({
    border: "1px solid black"
});

2 个答案:

答案 0 :(得分:2)

在某些浏览器中,似乎以下内容返回false

node.style.hasOwnProperty(attr)

在这些情况下,prototypeObject)本身会从node.style而不是拥有的继承这些属性。

如果您想测试该属性是否存在,无论是拥有还是继承,您可以尝试in operator

attr in node.style

在上下文中:

that.css = function(obj) {
    var node = that.getNode(),
        attr;
    if (node && node.style) {
        for (attr in obj) {
            if (obj.hasOwnProperty(attr) && attr in node.style) {
                node.style[attr] = obj[attr];
            }
        }
    }
    return that;
};

答案 1 :(得分:0)

手动制作 Cross-browser 解决方案需要做很多工作,我建议使用一些像JQuery这样的JavaScript框架,它会为您付出艰苦的努力。

如果您选择JQuery,您有一个名为.CSS的函数,您可以在一行中完成此任务,例如:

您有一个HTML元素:

<div id="someID"> Content </div>

正确?所以你想要为这个DIV添加一些CSS类,你只需要告诉JQuery HTML DOM中的哪个节点想要选择并使用函数.CSS你可以设置一些CSS属性(以及其他东西):

$("#someID").css("SOME-ATTRIbute","SOME-VALUE");

(#someID是元素的ID,.CSS是函数)

easy eh ?,使用JQuery或任何其他Javascript框架来帮助您进行跨浏览器应用程序。

PS:对不起我的英文