почему Internet Explorer отображает мои страницы JavaScript в обратном порядке? - PullRequest
3 голосов
/ 09 апреля 2010

Вот версия кода, которую я использую, разделенная только на части, которые не работают. Все это написано для генерации некоторой базовой нумерации страниц с помощью jQuery.

В Chrome / Safari / Moz, я генерирую видеть промежутки, 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);

Ответы [ 2 ]

5 голосов
/ 09 апреля 2010

Вы используете for ... in цикл на Array. Не делайте этого, это только для перебора свойств объекта, используемого в качестве отображения.

JavaScript не гарантирует, что вы получите свойства обратно в порядке массива, и вы также можете получить другие нечисловые свойства прототипа Array, которые вам не нужны.

Вместо этого используйте простой старый цикл for (var i= 0; i<array.length; i++). Или, поскольку вы используете jQuery, $.each.

2 голосов
/ 09 апреля 2010

Вы можете обнаружить, что это связано с классом CSS "my_class" или его родителями, а не с javascript

Вы пробовали alert (str) в соответствующих браузерах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...