我有简单的javascript函数为容器内的每个元素添加边框。如何使只有一个元素可以处于onclick状态?因此,目前只有一个要素具有边界。


var fileA = document.querySelectorAll('file_a');

for ( var i = 0; i < fileA.length; i++ ) (function(i){
  fileA[i].onclick = function() {
    fileA[i].style.border = '1px solid teal';
  };
})(i);

container_a {
  background: rgb(220,220,220);
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: 2%;
  display: flex;
  flex-wrap: wrap;


}
file_a {
  background: rgb(245,245,245);
  box-shadow: 0px 5px 10px rgba(0,0,0,0.07);
  width: 100%;
  max-height: 100px;
  display: block;
  -webkit-transform: scale(0.98);
  transition-duration: 250ms;
}
file_a:hover {
  -webkit-transform: scale(1);
}
file_a.redclass {
  background-color: red;
}

<container_a>
  <file_a>1</file_a>
  <file_a>2</file_a>
  <file_a>3</file_a>
  <file_a>4</file_a>
</container_a>

最佳答案

您需要先删除所有边框,然后再添加新边框。有关示例,请参见此小提琴。 https://jsfiddle.net/e79puv91/

var fileA = document.querySelectorAll('file_a');

for ( var i = 0; i < fileA.length; i++ ) (function(i){
  fileA[i].onclick = function() {
    for (var x = 0; x < fileA.length; ++x) {
      fileA[x].style.border = '';
    }
    fileA[i].style.border = '1px solid teal';
  };
})(i);

09-25 15:57