Проблема возникает в IE6 (вероятно, все браузеры предшествуют документу.getElementsByClassName). Использование jQuery 1.6 с Prototype 1.5
<script src="../js/jquery-1.6.js" language="javascript" type="text/javascript"> </script>
<script language="javascript" type="text/javascript">
// Prototype will claim the '$' namespace so give jQuery '$j' instead.
$j = jQuery.noConflict();
</script>
<script src="../js/prototype.js" language="javascript" type="text/javascript"> </script>
Проблема обсуждается здесь: http://randomous.com/forum/topic.php?id=916 (см. 2-й пост) и здесь: http://ejohn.org/blog/getelementsbyclassname-pre-prototype-16
По сути, Prototype создает document.getElementsByClassName в браузерах до этой функции (в настоящее время она изначально поддерживается большинством браузеров).
Однако jQuery также проверяет наличие document.getElementsByClassName и, когда находит его, предполагает, что он получает нативную реализацию; но на самом деле он получает реализацию прототипов, которая ведет себя не так, как ожидает jQuery.
Я пробовал МНОГО трюков, чтобы решить эту проблему, но ни один из них не работает. [попытка сообщить jQuery document.getElementsByClassName не определена, попытка помешать прототипу требовать document.getElementsByClassName и т. д.]
Приложение старое (следовательно, старый прототип) и, к сожалению, будет работать в основном на IE6 и IE7 (да, FML). Я пытаюсь использовать последнюю версию jQuery, так как именно там мне удобно, и мне нужно добавить в приложение множество сумасшедших элементов управления пользовательским интерфейсом - безумие перетаскивания выпадающего списка... в основном мне нужен jQuery.
Конечным результатом здесь является то, что я получаю ошибки каждый раз, когда использую селектор класса jQuery - $('.someClass')
Любые мысли здесь? Я думал, что неплохо разбираюсь в javascript, но это меня убивает.