我正在尝试使用此代码使用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;
}

另外:无需在toString上显式调用paddingOfUl,如果尝试将字符串附加到数字,它将自动完成。所以:
...paddingLeft = paddingOfUl + "px";

...很好。

关于javascript - 使用核心Javascript向左和向右填充,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15875721/

10-12 04:45