Javascript jQuery与MooTools冲突:未捕获类型错误:self.className.contains不是函数

Javascript jQuery与MooTools冲突:未捕获类型错误:self.className.contains不是函数,javascript,jquery,mootools,Javascript,Jquery,Mootools,我有一个同时使用jQuery和MooTools的应用程序。在过去,我能够绕过与jQuery.noConflict()的冲突,但是似乎有一个特定的页面,jQuery.noConflict()以一种意想不到的方式工作:特别是,getElementByClasspolyfill正在被MooTools覆盖 以下操作将失败,并出现以下错误: var$j=jQuery.noConflict(), var$myElements=$j(“.my元素”); 返回: 未捕获类型错误:self.className

我有一个同时使用jQuery和MooTools的应用程序。在过去,我能够绕过与
jQuery.noConflict()
的冲突,但是似乎有一个特定的页面,
jQuery.noConflict()
以一种意想不到的方式工作:特别是,
getElementByClass
polyfill正在被MooTools覆盖

以下操作将失败,并出现以下错误:


var$j=jQuery.noConflict(),
var$myElements=$j(“.my元素”);

返回:

未捕获类型错误:self.className.contains不是 functionSelectors.Filters.byClass@ mootools-1.2.js:2766Selectors.Utils.filter@ mootools-1.2.js:2635Selectors.Utils.search@ mootools-1.2.js:2700Native.implement.getElements@ mootools-1.2.js:2532Native.implement.getElementsByClassName@ mootools-1.2.js:9638c.queryselectoral.k@ jquery.1.6.4.min.js:3f.fn.extend.find@ jquery.1.6.4.min.js:3e.fn.e.init@jquery.1.6.4.min.js:2e@ jquery.1.6.4.min.js:2(匿名函数)@VM16934:6

我试图通过CDN引入脚本,将jQuery“重新初始化”为默认值,但也失败了


如何将jQuery重置为以前的方法?

请不要使用mootools 1.2,它早于ES5对
String.prototype.contains
Array.prototype.contains的原生方法,大约有5-6年的历史

无论哪种方式,MooTools都不会覆盖
Element.prototype.getElementByClassName
,这在现代浏览器选择器中是不会使用的-因此,除非您支持IE6,否则这没有什么意义,sizzle和slick都将使用
querySelectorAll

而且

MooTools的
String.prototype.contains
破坏了浏览器,并强制推出了一系列修复程序,包括1.2.6和1.3

最后

self.className.contains
没有帮助-这是您自己的代码还是MooTools中的代码-通常,self是一种将作用域保留到实例的黑客,它指向将具有
className
属性的
元素是不寻常的。当您
console.log(self.className)
时会发生什么