使用JavaScriptdynamic更改元素样式属性
我有一个div的特定样式表。 现在我想用jsdynamic修改div的一个属性。
我该怎么做?
document.getElementById("xyz").style.padding-top = "10px";
它是否正确?
这几乎是正确的。
由于-
是一个javascript运算符,你不能真正拥有属性名称。 如果你正在设置, border
或类似的单词措辞,你的代码将工作得很好。
然而,你需要记住padding-top
和任何带有连字符的属性名称,在JavaScript中,你删除连字符,并使下一个字母大写,所以在你的情况下,这将是paddingTop
。
还有一些例外。 JavaScript有一些保留字,所以你不能像这样设置float
。 相反,在某些浏览器中,您需要使用cssFloat
和其他styleFloat
。 这是这样的差异,build议您使用一个框架,如jQuery,处理浏览器不兼容的你…
除了其他答案之外,如果你想使用风格属性的破折号,你也可以使用:
document.getElementById("xyz").style["padding-top"] = "10px";
我解决了类似的问题:
document.getElementById("xyz").style.padding = "10px 0 0 0";
希望有所帮助。
假设你有这样的HTML:
<div id='thediv'></div>
如果你想修改这个div的style属性,你可以使用
document.getElementById('thediv').style.[ATTRIBUTE] = '[VALUE]'
将[ATTRIBUTE]
replace为所需的样式属性。 请记住删除“ – ”,并将下列字母大写。
例子
document.getElementById('thediv').style.display = 'none'; //changes the display document.getElementById('thediv').style.paddingLeft = 'none'; //removes padding
document.getElementById("xyz").style.padding-top = '10px';
将会
document.getElementById("xyz").style["paddingTop"] = '10px';
我build议使用一个函数,它接受元素id和一个包含CSS属性的对象来处理这个。 这样一次编写多个样式,并使用标准的CSS属性语法。
//function to handle multiple styles function setStyle(elId, propertyObject) { var el = document.getElementById(elId); for (var property in propertyObject) { el.style[property] = propertyObject[property]; } } setStyle('xyz', {'padding-top': '10px'});
更好的是,你可以将样式存储在一个variables中,这会使物业pipe理更容易
var xyzStyles = {'padding-top':'10px'} setStyle('xyz', xyzStyles);
希望有所帮助
document.getElementById("xyz").setAttribute('style','padding-top:10px');
也会做这个工作。
还有style.setProperty
函数:
https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/setProperty
document.getElementById("xyz").style.setProperty('padding-top', '10px'); // version with !important priority document.getElementById("xyz").style.setProperty('padding-top', '10px', 'important');