当父有“选中”类时,如何更改图像src?

问题描述 投票:1回答:2

我试图通过查看父类来更改图像,以查看它是否已“选中”。我有一些代码将“选定”类添加到“平台选择”类。

<div class="platform-selection selected">
    <div style="margin: 5px;">
        <img src="xbox1.png" id="xbox" />
     </div>
</div>
    var xboxselected = document.getElementById("xbox").parentElement.parentElement.classList;
    if(xboxselected = "selected")
        {
           document.getElementById("xbox").src="xbox2.png";
        }
        else
        {
            document.getElementById("xbox").src="xbox1.png";
        }

我想将图像更改为xbox2.png只有当其父父级具有“已选择”类时。我立刻得到了xbox2.png

javascript dom
2个回答
3
投票
if(xboxselected = "selected")

那应该是

if (xboxselected.contains("selected"))

=是任务,而不是比较。要比较相等的东西,你可以使用===(或==),但这没有任何意义,因为xboxselected不是一个字符串,而是一个class list

只需使用其.contains方法。


也就是说,如果您想要做的就是根据父元素的类显示不同的图片(并且每当类更改时图片应该“改变”),您可以使用CSS:

document.getElementById('demo').onclick = function () {
    document.querySelector('.platform-selection').classList.toggle('selected');
};
.platform-selection img.alternative {
    display: none;
}

.platform-selection.selected img {
    display: none;
}

.platform-selection.selected img.alternative {
    display: block;
}
<div class="platform-selection">
    <div style="margin: 5px;">
        <img src="https://i.imgur.com/1aCFcDj.jpg">
        <img src="https://i.imgur.com/rmPqh.gif" class="alternative">
     </div>
</div>

<button id="demo">Toggle selection</button>

有两个图像。我们最初使用CSS隐藏其中一个(具有类alternative的那个)。每当父元素获得selected类(此处由切换按钮提供)时,它隐藏(通常可见)包含的图像并显示(通常隐藏的)alternative图像。


0
投票
var xboxselected = document.getElementById("xbox").parentElement.parentElement.classList;

这将返回一个类数组。您需要检查ClassList中是否存在selected

if(xboxselected.value.indexOf("selected") > -1){

   document.getElementById("xbox").src="xbox2.png";

 } else {

   document.getElementById("xbox").src="xbox1.png";

  }`
© www.soinside.com 2019 - 2024. All rights reserved.