更改没有ID的元素的类

时间:2018-07-29 04:00:49

标签: jquery

嗨,

我想更改没有ID的元素的类,所以我正在这样做

var cols = document.getElementsByClassName('input-box');
        for(i=0; i<cols.length; i++) {
         cols[i].toggleClass('invisible');
        }

但是它行不通。我收到一条错误消息

cols[i].toggleClass is not a function

那是为什么?

谢谢。

2 个答案:

答案 0 :(得分:3)

您需要$(cols).toggleClass('invisible');,因为您的cols不是jquery对象,而toggleClass是jquery方法。

var cols = document.getElementsByClassName('input-box');
        //for(i=0; i<cols.length; i++) {
         //cols[i].toggleClass('invisible');
        //}
$('button').on('click', function(){
  $(cols).toggleClass('invisible');
});
.invisible {
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input value="Input 1" class="input-box"/><br/>
<input value="Input 2" class="input-box"/><br/>
<input value="Input 3" class="input-box"/><br/>
<input value="Input 4" class="input-box"/><br/>
<button>Click Me </button>

答案 1 :(得分:3)

您正在从非jquery对象调用JQuery函数。

如果您使用的是JQuery,则可以执行以下操作:

$('.input-box').toggleClass('invisible');

没有JQuery:

var cols = document.getElementsByClassName('input-box');
for(i=0; i<cols.length; i++) {
   cols[i].classList.toggle('invisible');
}