40代オヤジのプログラミング悪あがきブログ

40代のオヤジがプログラミング業界で悪あがきするテック系ブログです

【JavaScript】imgの特定idのsrcを変更する。

imgのsrcだけ変更する

時々忘れる、JSで特定アクションの後に画像などの参照先を変換する方法のメモです。

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <div class="center">
        <div>
            <img src="./01.jpg" id="main">
        </div>
        <ul>
            <!-- data-xxxが、JSの.dataset.xxxに拾われるようだ。-->
            <li><img src="./01.jpg" class="thumb" alt="" data-img="./01.jpg"></li>
            <li><img src="./02.jpg" class="thumb" alt="" data-img="./02.jpg"></li>
            <li><img src="./03.jpg" class="thumb" alt="" data-img="./03.jpg"></li>
            <li><img src="./04.jpg" class="thumb" alt="" data-img="./04.jpg"></li>
        </ul>
    </div>
    <script src="./script.js"></script>
</body>
</html>

css

section img {
    width: 756px;
}

#main {
    width: 756px;
}

.center{
    margin: 0 auto 0 auto;
    max-width: 90%;
    width: 500px;
}

ul {
    display: flex;
    margin: 0;
    padding: 0;
    list-style-type: none;
}

li {
    flex: 1 1 auto;
    margin-right: 8px;
}

li:last-of-type {
    margin-right: 0;
}

.thumb {
    width: 160px;
    padding: 10px;
}

JavaScript

const thumbs = document.querySelectorAll('.thumb')
thumbs.forEach(function(item, index){
    item.onclick = function(){
        const imgUrl = document.getElementById('main')
       //setAttribute('src', 変えたい画像の変数)で、上記コードで指定したidのsrcの参照先を変換します。
        const src = imgUrl.setAttribute('src', this.dataset.img)
    }
})