对类选择的元素数组使用FOR循环,并对每个元素调用函数
Using a FOR loop for an array of elements selected by class, and calling functions on each
我正试图在whateverDiv
上循环并找到每个元素的偏移量。我收到错误消息Uncaught TypeError: undefined is not a function
,我怀疑是因为无法在元素上调用.offset()
。这就引出了一个问题,即如何在这样的数组中的元素上调用函数,如.offset()
和.is(":hover")
。
whateverDiv = document.getElementsByClassName('whatever')
//RETURNS SOMETHING LIKE [<img src="http://www.whateversource.jpg">,<img src="http://www.whateversource2.jpg">]
for (i in whateverDiv){
console.log(whateverDiv[i].offset())
}
假设jquery包含
whateverDiv = document.getElementsByClassName('whatever')
//RETURNS SOMETHING LIKE [<img src="http://www.whateversource.jpg">,<img src="http://www.whateversource2.jpg">]
for (i in whateverDiv){
var $div = $(whateverDiv[i])
console.log($div.offset())
}
正如其他人提到的,您不应该使用for in
,而应该使用标准的for
构造。然而,如果你已经在使用jQuery了,你还可以喝koolaide并使用他们的.每个
http://api.jquery.com/each/
$(".whatever").each(function() {
console.log( $(this).offset() );
});
您已经使用两种类型的for
循环的组合对循环进行了编码。
for (i in whateverDiv) {
// 'i' is each element
}
与。
for (var i = 0; i < whateverDiv.length; i++) {
// 'i' can be used as an index of the 'whateverDiv' collection
}
然而,正如在评论中所述,最好使用所有jQuery,因为循环中的对象仍需要转换为jQuery对象才能使用这些函数。
$('.whateverDiv').each(function () {
console.log($(this).offset());
});
您可以使用jQuery循环:
$('.whatever').each(function(index, value) {
console.log('Item: ' + index + ' - element: ' + $(value).text());
// you could call a function like this on each element:
// yourFunction($(value));
// or a function of the jQuery element -> $(value).offset();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="whatever">
item one
</div>
<div class="whatever">
item two
</div>
<div class="whatever">
item three
</div>
<div class="whatever">
item four
</div>
<div class="whatever">
item five
</div>
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 在函数中添加数组元素的数值
- 如何在DOM元素上按类型构建此函数
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- Rails/Javascript链接到用于切换多个元素的函数
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- jQuery在元素的上下文中运行函数
- 如何在模板聚合物中使用元素函数
- Append元素在运行两次函数后不显示
- 当元素可见时,jQuery滚动函数会触发一次
- 如何将一个函数附加到一个不存在的元素上
- 带有事件的触发元素函数
- 是否可以从另一个元素访问元素函数?聚合物1.0
- 单击的元素函数参数的值错误
- 为什么不在DOM元素函数上应用工作呢?
- 未定义的错误:创建带有返回HTML元素函数的对象
- node . js,节点.IO -使用"each"迭代元素函数停止服务器
- 将循环变量作为元素函数中的参数传递
- 动态添加的元素函数调用不工作