javascript – 迭代jQuery $(this).attr(‘class’).split(“”)给出奇怪的结果

前端之家收集整理的这篇文章主要介绍了javascript – 迭代jQuery $(this).attr(‘class’).split(“”)给出奇怪的结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个页面,我正在尝试为共享一个公共类的大量div获取类的数组.例如:
<div class="common lorem ipsum"></div>
<div class="common dolor sit"></div>
<div class="common hello world"></div>

我想要获取每个常用的类div并获取它的一个Array类.目前,我正在使用这一点jQuery:

$('.common').each(function(index) {
  var classes = $(this).attr('class').split(" ");
  for(var i in classes) {
    alert(classes[i]);
  }
});

查看第一个生成的类变量给出了这一点:

classes: Array (3)
0: "common"
1: "lorem"
2: "ipsum"
length: 3
__proto__: Array

问题是,for(var中的类)似乎在__proto__数组中迭代,并深入研究 – 有谁曾经遇到过这个?我正在使用最新版本的Chrome(6.0.453.1).

解决方法

for ( var i = 0,l = classes.length; i<l; ++i ) {
 alert( classes[i] );
}

通过一个有规则的for循环的数组迭代,而不是for …,否则枚举数组的属性(由于它仍然是一个对象,除了元素之外还有其他属性).

猜你在找的jQuery相关文章