2017-08-04 96 views
2

当我点击输入元素时,我想更改具有“input-group-addon”类的div的背景:当你点击另一个元素时,改变javascript中一个元素的CSS风格

<div class="form-group col-sm-12 col-md-5"> 
    <label class="sr-only" for="exampleInputEmail">Email address</label> 
    <div class="input-group" > 
     <div class="input-group-addon"> 
      <img src="pictures/email.png" alt="Email" /> 
     </div> 
     <input type="email" class="form-control" id="exampleInputEmail" placeholder="Email Adress" onclick="changeBackground()"> 
    </div> 
</div> 

我创建JavaScript文件background.js:

function changeBackground() { 
    var el = document.getElementsByClassName('input-group-addon'); 
    el.style.backgroundColor = "#cc0c8e"; 
} 

,我插入它在HTML文件的末尾:

<script src="js/background.js"></script> 

但它不起作用。我不得不犯错,但我没有看到它... 预先感谢您。

+0

'EL [0] .style。 backgroundColor'这样做,因为'getElementsByClassName'返回给定类名称的元素数组 – Durga

+0

我认为你必须添加[0] el el el el.s tyle。 – dec

回答

1

document.getElementsByClassName()返回array-like object。要更新一个元素,你必须指定一个索引。

var el = document.getElementsByClassName('input-group-addon')[0]; 
+1

它返回一个HTMLCollection(一个像数组的项目) – Endless

0

你的问题 - getElementsByClassName方法返回元素

只有做到这一点的数组: el[0].style.backgroundColor = '#cc0c8e';

而且你还可以使用document.querySelector('.input-addon-group')代替 getElementsByClassName

相关问题