我有数组元素,我想将一个函数应用于此数组中的每个元素,该类将.active
类添加到第一个子元素。目前我收到了错误
'Uncaught TypeError: projectImage.forEach is not a function'
这有什么问题?非常感谢任何帮助指针
var Image = {
init: function() {
Image.setupImages();
},
setupImages: function() {
var projectImage = $('.project-img');
projectImage.forEach(function(project) {
project.find('.project-thumnbail').eq(0).addClass('active');
});
},
}
$(document).ready(function() {
Image.init();
});
.project-thumbnail {
visibility: hidden;
}
.active {
visibility: visible;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="project-img">
<div class="project-thumbnail">
<img src="http://via.placeholder.com/250/000000">
</div>
<div class="project-thumbnail">
<img src="http://via.placeholder.com/250/000000">
</div>
<div class="project-thumbnail">
<img src="http://via.placeholder.com/250/000000">
</div>
<div class="project-thumbnail">
<img src="http://via.placeholder.com/250/000000">
</div>
</div>
<div class="project-img">
<div class="project-thumbnail">
<img src="http://via.placeholder.com/250/ffffff/000000">
</div>
<div class="project-thumbnail">
<img src="http://via.placeholder.com/250/ffffff/000000">
</div>
</div>
答案 0 :(得分:3)
正如错误试图告诉你的那样,jQuery没有forEach
函数。
你可能意味着.each()
此外,它传递元素,而不是jQuery对象。
请参阅文档。
答案 1 :(得分:1)
将forEach
替换为.each()
,如:
var projectImage = $('.project-img');
projectImage.each(function() {
$(this).find('project-thumnbail:eq(0)').addClass('active');
});
因为projectImage
是jQuery对象而不是JS数组,forEach
是数组方法。
答案 2 :(得分:0)
var projectImage = $('.project-img');
给出jQuery
个对象。 forEach()
不是jQuery
对象上的函数,只是在vanilla上。
使用forEach()
代替each()
,而jQuery是等效的。
projectImage.each(element => { console.log('do something'); });