yaasshole 2013-02-06
代码如下:
/** *关于 querySelectorAll函数 *返回当前文档中匹配一个特定选择器的所有的元素 *var nodelist = element.querySelectorAll("div.test"); *支持浏览器 ie8+,Chrome,Firefox(3.5) * 如果你不清楚可以google 一下 */ if ( document.querySelectorAll ) { (function(){ var oldSizzle = Sizzle, div = document.createElement("div"), id = "__sizzle__"; div.innerHTML = "<p class='TEST'></p>"; // Safari can't handle uppercase or unicode characters when // in quirks mode. if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) { return; } Sizzle = function( query, context, extra, seed ) { //使用querySelectorAll 来查询 } }
代码如下:
/** .sizzle 通过 chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g 这个正则进行匹配, .把我们传来的参数'.test',匹配成'.test' 放到数组 .检测浏览器是否支持getElementsByClassName 如果支持,则通过此函数返回dom,如果不支持此函数则 context.getElementsByTagName( "*" ) ,通过上下文把所有的元素选出来,在通过循环,选择className = 'test' 的元素,放入数组返回dom。 */