Вам нужно обернуть ($()
) ваш this
(который является просто элементом DOM внутри цикла, а не объектом jQuery), чтобы иметь доступ к .toggle()
вот так:
$(this).toggle()
Но здесь нет необходимости в цикле .each()
, это:
$(this).next("tr").each(function (){ $(this).toggle()});
может быть просто таким:
$(this).next("tr").toggle();
И он будет работать на всех найденных элементов ... хотя здесь будет только один.
Проблема № 2 - этотот факт, что IE8 определенно считает, что следующая строка всегда visibile (это ошибка в используемой реализации jQuery 1.3.2 ).У вас есть 2 варианта здесь, быстрое решение состоит в том, чтобы переписать это так:
$("#report tr.odd").click(function(){
var show = $(this).find(".arrow").toggleClass("up").hasClass("up");
$(this).next("tr").toggle(show);
});
Вы можете видеть, что работает здесь .Или лучшее решение для меня, обновить до последней версии jQuery (1.4.3) , , вы можете протестировать свой текущий код здесь с этим , работающим также в IE8.