Javascript only affects one element

后端 未结 2 1767
执念已碎
执念已碎 2021-01-23 12:18

I don\'t understand, the border is only visible on the first item, why?

HTML

相关标签:
2条回答
  • 2021-01-23 12:53

    "document.getElementById" means "Returns a reference to the element by its ID", see here; and id means identity, you should have only one element in your dom tree per id.

    If you want to style multiple elements, try to use class.

    HTML

    <div id="theContainer">
        <div class="item">Content 1</div>
        <div class="item">Content 2</div>
    </div>
    

    CSS

    .item { border-top: 1px solid #0ea2c7; }
    
    0 讨论(0)
  • 2021-01-23 12:59

    You can use document.getElementsByClassName

    JavaScript

    var elements = document.getElementsByClassName('item');
    for (i =0; i < ele.length; i++)    {
        elements[i].style.borderTop = '1px solid #000';
    }
    

    HTML

    <div id="theContainer">
        <div class="item">Content 1</div>
        <div class="item">Content 2</div>
    </div>​
    

    CSS

    #theContainer {
        height: 100px;
        width: 500px;
        position: relative;
        border: 1px solid #900;
        padding: 10px;
    }
    .item {
        height: 50px;
        width: 100%;
    }
    ​
    
    0 讨论(0)
提交回复
热议问题