使用核心Javascript左右填充

使用核心Javascript左右填充,javascript,jquery,Javascript,Jquery,我试图使用javascript使用此代码设置左右填充,但它不起作用 document.getElementsByClassName('className').style.paddingLeft = paddingOfUl.toString()+"px" ; 获取此错误 未捕获的TypeError:无法设置未定义的属性“paddingLeft” 请帮助建议我这里做错了什么。getElementsByClassName返回元素列表,而不是一个元素。您需要索引到列表中才能修改其中的元素 只是第一个:

我试图使用javascript使用此代码设置左右填充,但它不起作用

document.getElementsByClassName('className').style.paddingLeft = paddingOfUl.toString()+"px" ;
获取此错误

未捕获的TypeError:无法设置未定义的属性“paddingLeft”


请帮助建议我这里做错了什么。

getElementsByClassName
返回元素列表,而不是一个元素。您需要索引到列表中才能修改其中的元素

只是第一个:

document.getElementsByClassName('className')[0].style.paddingLeft = paddingOfUl.toString()+"px" ;
// Change here -----------------------------^^^
所有这些:

var list = document.getElementsByClassName('className');
var i;
var padding = paddingOfUl.toString()+"px";
for (i = 0; i < list.length; ++i) {
    list[i].style.paddingLeft = padding;
}

…很好。

您需要在元素之间循环:

var elements = document.getElementsByClassName('className');
for (var i = 0; i < elements.length; i++) {
    elements[i].style.paddingLeft = paddingOfUl.toString()+"px";
}
var elements=document.getElementsByClassName('className');
对于(var i=0;i
文档。getElementsByClassName('className')
将返回一个元素数组。由于数组没有样式属性,因此会收到错误

代码应该迭代数组返回的元素

var elements = document.getElementsByClassName('className');

for(var i = 0; i < elements.length; i++){
   elements[i].style.paddingLeft = paddingOfUl.toString() + "px";
}
var elements=document.getElementsByClassName('className');
对于(var i=0;i
var elements=document.getElementsByClassName('className');
//上面返回了一个类似数组的结构,该结构具有长度属性。
for(var i=0,len=elements.length;i
您可以使用javascript更改任何元素的样式,如下所示:

document.getElementById("nameofelement").style.paddingLeft="10px";

除了paddingLeft之外,您还可以使用background=“color”color=“grren”等。不要使用
for in
循环节点条目。这不是它的目的。虽然我不认为这会是一个问题,在这种情况下。(参考:)如果任何插件或库决定增强节点列表原型,当然会。这只是你不在数组中误用
的原因的一个推论。仅供参考,我在顶部添加一句话的原因是为了解决堆栈溢出错误,它会在向下投票中锁定,并说“除非有编辑,否则无法更改”—即使你在投票后编辑了帖子。因为是在五分钟内,所以系统失灵了。我想删除否决票,所以我必须进行编辑。:-)如果他们更改给定类的所有元素,则更改类本身会更简单。@thg435:更直接,可能不简单。处理样式表并这样做是一件痛苦的事情。当然,他们可能有理由直接使用
样式
(优先级等)。
var elements = document.getElementsByClassName('className');
// the above returns an Array-Like structure with a length property.

for (var i = 0, len = elements.length; i < len; i++) {
    elements[i].style.paddingLeft = "10px";
};
document.getElementById("nameofelement").style.paddingLeft="10px";