2013-02-28 1 views
0

Я пытаюсь преобразовать строку в Javascript, чтобы функциональность работала в IE7. Ниже приведен код, который я пытаюсь преобразовать. Очевидно, что IE не нравится, что атрибут класса задан, где возникает проблема. Поэтому я решил перевести его с помощью JQuery для совместимости браузеров. Но мне трудно преобразовать массив во что-то, что понимает JQuery.Ошибка преобразования Javascript массива в JQuery для совместимости с IE7

Это код:

ulAccNm.children[iVal].setAttribute("class", "show"); 

Я попытался следующие, но это не работает должным образом.

$(ulAccNm).children(jQuery.inArray("iVal")).addClass('show').removeClass('hide'); 

Переменная Ival переводится в общее число детей к родителю и перебирает каждый, чтобы определить, добавить класс или нет. Любая помощь будет принята с благодарностью.

+0

Что такое 'ulAccNm'? где эта «петля» вы описываете? – Blazemonger

+0

Какова была цель '.children (jQuery.inArray (« iVal »))? все, что вам нужно, было '.children(). eq (ival)' –

+0

Я забыл об этом Кевине Б. Это исправило проблему. Если вы создадите ответ, я был бы рад принять его как правильный. :) – blckenedicekaj

ответ

0

Законченное фиксируя с помощью предложения Kevin B по .children() .eq (ival), и это заставляет его работать

0

Я предполагаю, что здесь много, но я думаю, что это будет переводить:

$($(ulAccNm).children()[iVal]).addClass('show').removeClass('hide'); 

Однако, если вы хотите сделать это для всех детей, вам не нужен явный цикл с iVal. Просто используйте

$(ulAccNm).children().addClass('show').removeClass('hide'); 
0

Вы просто хотите, чтобы попытаться изменить структуру цикла из для цикла методу jQuery.each:

$(ulAccNm).children().each(function() { 
    // Decide if the class needs to be changed 
    if (needsToBeChanged) 
     $(this).addClass('show').removeClass('hide'); 
}) 
+0

Завершено исправление с помощью предложения Kevin B .children(). Eq (ival), и это заставляет его работать. – blckenedicekaj

Смежные вопросы