我正在尝试动态设置像这样的元素
var element = document.querySelector('.myElement');
var prop = 'left'; // this is incoming property variable computed by other code
var leftTop = ['left','top'];
var widthHeight = ['width','height'];
if (prop === 'left' || prop === 'top') {
element.style[prop] = 20+'px'; // the condition determines that left/top property is to be used
} else {
element.style[prop] = 40+'px'; // the condition determines that width/height property is to be used
}
错误是:
SCRIPT87:参数无效。文件:script.js,行:275,列:5
我知道当条件满足时我可以使用element.style.left
,IE8可以完成这项工作,但在我的情况下,数组变量包含20多个属性,我真的需要让它与element.style[prop]
一起使用。
感谢您的任何建议或解决方案。
答案 0 :(得分:1)
你需要放
var element = document.querySelector('.myElement');
window.onload
。你现在所拥有的是在元素存在之前抓取.myElement
。如果你需要保持全局,那么只需定义为:
var element;
window.onload = function(){
element = document.querySelector('.myElement');
if (prop === 'left' || prop === 'top') {
element.style[prop] = 20+'px'; // the condition determines that left/top property is to be used
} else {
element.style[prop] = 40+'px'; // the condition determines that width/height property is to be used
}
};
提示错误:http://jsfiddle.net/a9fms3um/ 摆弄没有错误:http://jsfiddle.net/a9fms3um/1/ 还要确保该元素与页面上的该类确实存在。