javascript - document.getElementById 和 document.getElementsByClassName 之间的区别

标签 javascript jquery css html

特别是为什么 document.getElementsById 在这里起作用

<div id="move">add padding</div>

<button type="button" onclick="movefun()">pad</button>

<script>
function movefun() {
    document.getElementById("move").style.paddingLeft = "50px";
}
</script>

但是 document.getElementsByClassName 不起作用

<div class="move">add padding</div>

<button type="button" onclick="movefun()">Set left padding</button>

<script>
    function movefun() {
        document.getElementsByClassName("move").style.paddingLeft = "50px";
    }
</script>

我省略了 html 和 body 标签等常见内容以减少代码长度。

最佳答案

因为 getElementsByClassName 返回一个类数组对象,其中包含所有具有所有给定类名称的子元素。

如果你想在类里面做,请改用这个

演示 1 -> http://jsfiddle.net/1r0u5d3o/2/

document.getElementsByClassName("move")[0].style.paddingLeft = "50px";

或者如果你想对类的所有元素执行此操作,请使用循环

演示 2 -> http://jsfiddle.net/1r0u5d3o/1/

function movefun() {
    var elements = document.getElementsByClassName("move");
    for (var i = 0; i < elements.length; i++) {
        elements[i].style.paddingLeft = "50px";
    }
}

关于javascript - document.getElementById 和 document.getElementsByClassName 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31974582/

相关文章:

javascript - 两次之间的小时差(HH :MM:SS a)in momentjs

javascript - 范围标题、视频

html - 如何将我的搜索框对齐到最右端

javascript - 如何像在 JavaScript 中一样调用 jQuery 函数

javascript - 如何在 Bootstrap Material 设计的输入文本中制作标签支持?

javascript - 如何制作一个非常简单的彩色 1 行文本区域?

html - 如何禁用输入建议?

Javascript - 动态 .filter() - Json 文件

javascript - 使用 nextjs/react 访问 newsapi 时的 "TypeError: data.map is not a function"

jquery - 在网络调查问卷中使用 jquery 添加/删除类