【问题标题】:why is internet explorer displaying my javascript pagination backwards?为什么 Internet Explorer 向后显示我的 javascript 分页?
【发布时间】:2010-08-27 16:09:44
【问题描述】:

这是我正在使用的代码的一个版本,被精简到仅不工作的部分。这一切都是为了使用 jQuery 生成一些基本的分页。

在 Chrome/Safari/Moz 中,我生成 see spans、1、2、3、4、...等

当我查看 IE7/8 时,我看到 etc,...,4,3,2,1

字符串似乎是向后连接的!!

这对我来说似乎很奇怪,因为这里的代码并没有发生很多事情,我无法弄清楚哪一点可能会导致问题。

显然,1、2、3、4、...等是我在这里的目标,以及解释为什么这是一个问题,如果有人可以提供,我会很高兴快速修复。

myVar = {
arr:$.makeArray($('.my_li'))
};

var str;
str='';

for (s in myVar.arr){
r=parseInt(s,10)+1;
str+='<span class="my_class">'+r+'</span>';
}

$('#my_other_div').html(str);

【问题讨论】:

  • 因为网络爆炸者是魔鬼。
  • 样式可能导致这种情况发生。您能给我们提供与此相关的 CSS 吗?
  • IE 显示不正确?不可思议!
  • 正如我在下面所说的,它在页面源中向后出现,所以它不可能是 CSS 问题。问题是 IE 在数组中向后循环。

标签: javascript jquery internet-explorer cross-browser


【解决方案1】:

您在Array 上使用for...in 循环。不要这样做,它只是为了迭代用作映射的对象的属性。

JavaScript 不保证您会按数组顺序获取属性,并且您还可能会获取您不想要的 Array 原型的其他非数字属性。

改为使用普通的旧 for (var i= 0; i&lt;array.length; i++) 循环。或者,由于您使用的是 jQuery,$.each.

【讨论】:

  • 知道 JavaScript 没有指定返回属性的顺序,我倾向于支持 IE 的实现。这不是很奇怪.. 向下循环比向上循环快,对吧?
  • 勉强。有时。但这并不是 IE 真正在做的事情 — 那太容易了!
【解决方案2】:

您可能会发现它与 CSS 类“my_class”或它的父类有关,而不是与 javascript 有关。

您是否在各自的浏览器上尝试过alert(str)

【讨论】:

  • 它在源代码中向后出现,这不是 css 的东西。
猜你喜欢
  • 2011-04-12
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 2011-06-22
相关资源
最近更新 更多