javascript - 为什么javascript函数不能正常运行

标签 javascript html css

我有一个对象 dom,它有一个名为 changeCss 的属性,可以更改任何元素的 css:代码如下:

var Dom = {
 changeCss : function(element, properties){
            if(typeof (properties) === "object"){

                var properties_name = Object.keys(properties),
                     properties_value = [];

             for ( var i = 0; i < properties_name.length ; i++  ){
                 var a = properties_name[i],
                  b = properties[a];

                  properties_value[i] = b;

                  element.setAttribute("style", a+":" + b+";");

             };

            }else{
                throw 'properties of '+ element +" should be object";  
            }   
        },  
} 

因此,从这段代码中,您将了解我想如何更改任何元素的 css,并且效果很好。但我面临的问题是,如果我正在编写这段代码:

var x = document.getElementById("some_html_tag_id");
Dom.changeCss(x, {"width": "100px", "height":"80px"});  

那么样式元素只包含 height:80px 而不是 width:100px !如何添加所有这些样式属性?

谢谢

安妮

最佳答案

首先替换

element.setAttribute 

element.style[a]= b;

但基本上你应该明白你知道。 SetAttribute 函数将新值设置为属性样式。 所以 而我==0 style='宽度:100px;' 而我==1 style= 'height:80px;'

因为您只是覆盖值。如果您想在代码中保留 SetAttribute 函数。您需要先连接所有值,然后使用设置属性

关于javascript - 为什么javascript函数不能正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24797993/

相关文章:

javascript - 为什么厚 Hr 显示 2 行很难看(CSS)?

javascript - 在子标题之间选择相邻的 sibling 作为单独的组?

javascript - 使用 JavaScript 进行 Cucumber/Capybara 测试似乎不会只执行一项也使用 ActionCable 和 Redis 的测试

html - 具有绝对起始位置的动态宽度

javascript - 在树 jqgrid 中显示 Sparkine

javascript - 无法在react.js中的模板字符串中渲染html标签

javascript - 是否可以改进 html 表导出到 xls

javascript - 三路类切换

javascript - Ionic : $ionicPlatform. isIOS() 在 Controller 方法中不起作用

javascript - 如何在 JavaScript 中按字母顺序(升序和降序)排序