我发现在Java中编辑CSS样式时this question,其中的解决方案是使用

document.getElementById('element').style.MozBoxShadow = "1px 1px 1px #000";


我正在尝试编写一个函数,该函数需要像这样编辑参数数组:

var element = document.getElementById('element');
editElementStyles(element, new Array("width", "100%", "height", "100%"...etc.));


和功能:

function editElementStyles(element, args) {
    for (var i = 0; i < args.length; i += 2) {
        element.style.args[i] = args[i + 1];
    }
}


但是,这当然不起作用,因为args[i]不是element.style的属性。我该如何进行这项工作?

最佳答案

只是:

element.style[args[i]] = args[i + 1];


您正确地注意到args[i]args不是element.style的属性,要解决此问题,您只需使用方括号符号而不是点符号来访问属性。顺便说一句,无论如何,您正在使用args[i]

结果是:

function editElementStyles(element, args) {
    for (var i = 0; i < args.length; i += 2) {
        element.style[args[i]] = args[i + 1];
    }
}


顺便说一句,这似乎是将属性和值相关联的一种冒险方式。我建议:

function editElementStyles (element, styles) {
    for (var prop in styles) {
        if (styles.hasOwnProperty(prop)) {
            element.style[prop] = styles[prop];
        }
    }
}

editElementStyles (elem, {'width' : '100%', 'color' : 'red'});

关于javascript - 使用Javascript函数编辑多种CSS样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27006078/

10-12 13:06