使用纯 JS 为 bootstrap 手风琴添加向上和向下箭头

Add Up and down arrows to bootstrap accordion with pure JS

我的代码:

<div class="panel" style="margin-left: -15px;">
                <div class="panel-heading">
                    <div class="vgroupholder panel-title" data-parent="#accordion" data-toggle="collapse" href=".titlePhysics" onclick="removevBgs();" style="background-color: transparent;">

                        <div class="groupicon">
                            <div class="groupicontext">P</div>
                        </div>
                        <div class="grouptext">
                            <div class="grouptitle">Physics</div>
                        </div>
                        <img onclick="changeArrow(this);" src="../assets/images/down.png" width="45px" style="margin-left: 240px; opacity: 1;" onmouseover="this.style.opacity='75%';" onmouseout="this.style.opacity='100%';">

                    </div>      
                </div></div>
function changeArrow(id){
    if(id.src = '../assets/images/down.png'){
        id.src = '../assets/images/up.png';
    } else {
        id.src = '../assets/images/down.png';
    }
}

目前,箭头没有变化。

怎样才能让箭头变成up.png?

或者更好,有动画和旋转180度吗?

任何帮助都会很棒 - 谢谢!

在 if 条件下使用 == 而不是 = 并使用 getAttribute("src") 而不是 src 因为 src 直接给出整个路径,而 getAttribute 给你里面的内容

function changeArrow(id){
    console.log(id.src)
    if(id.getAttribute("src") == '../assets/images/down.png'){
        id.src = '../assets/images/up.png';
    } else {
        id.src = '../assets/images/down.png';
    }
}
function removevBgs(){}
<div class="panel" style="margin-left: -15px;">
  <div class="panel-heading">
      <div class="vgroupholder panel-title" data-parent="#accordion" data-toggle="collapse" href=".titlePhysics" onclick="removevBgs();" style="background-color: transparent;">

          <div class="groupicon">
              <div class="groupicontext">P</div>
          </div>
          <div class="grouptext">
              <div class="grouptitle">Physics</div>
          </div>
          <img onclick="changeArrow(this);" src="../assets/images/down.png" width="45px" style="margin-left: 240px; opacity: 1;" onmouseover="this.style.opacity='75%';" onmouseout="this.style.opacity='100%';">

      </div>      
  </div>

</div>