Skip to content

Commit b8325cf

Browse files
committed
update #677
1 parent f35e49c commit b8325cf

File tree

6 files changed

+1048
-961
lines changed

6 files changed

+1048
-961
lines changed

build/dom/base-min.js

Lines changed: 9 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/dom/base.js

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
Copyright 2014, KISSY v1.47
33
MIT Licensed
4-
build time: Jul 23 14:31
4+
build time: Aug 28 13:26
55
*/
66
/*
77
Combined processedModules by KISSY Module Compiler:
@@ -1634,8 +1634,21 @@ KISSY.add("dom/base/style", ["./api", "ua"], function(S, require) {
16341634
});
16351635
KISSY.add("dom/base/selector", ["./api"], function(S, require) {
16361636
var Dom = require("./api");
1637-
var doc = S.Env.host.document, docElem = doc.documentElement, matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector, supportGetElementsByClassName = "getElementsByClassName" in doc, isArray = S.isArray, makeArray = S.makeArray, isDomNodeList = Dom.isDomNodeList, SPACE = " ", push = Array.prototype.push, rClassSelector = /^\.([\w-]+)$/, rIdSelector = /^#([\w-]+)$/, rTagSelector = /^([\w-])+$/, rTagIdSelector =
1638-
/^([\w-]+)#([\w-]+)$/, rSimpleSelector = /^(?:#([\w-]+))?\s*([\w-]+|\*)?\.?([\w-]+)?$/, trim = S.trim;
1637+
var doc = S.Env.host.document, docElem = doc.documentElement, matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector, supportGetElementsByClassName = "getElementsByClassName" in doc, getElementsByClassName = doc.getElementsByClassName, isArray = S.isArray, makeArray = S.makeArray, isDomNodeList = Dom.isDomNodeList, SPACE = " ", push = Array.prototype.push, rClassSelector = /^\.([\w-]+)$/, rIdSelector = /^#([\w-]+)$/,
1638+
rTagSelector = /^([\w-])+$/, rTagIdSelector = /^([\w-]+)#([\w-]+)$/, rSimpleSelector = /^(?:#([\w-]+))?\s*([\w-]+|\*)?\.?([\w-]+)?$/, trim = S.trim;
1639+
if(!supportGetElementsByClassName) {
1640+
getElementsByClassName = function(el, match) {
1641+
var result = [], elements = el.getElementsByTagName("*"), i, elem;
1642+
match = " " + match + " ";
1643+
for(i = 0;i < elements.length;i++) {
1644+
elem = elements[i];
1645+
if((" " + (elem.className || elem.getAttribute("class")) + " ").indexOf(match) > -1) {
1646+
result.push(elem)
1647+
}
1648+
}
1649+
return result
1650+
}
1651+
}
16391652
function queryEach(f) {
16401653
var self = this, l = self.length, i;
16411654
for(i = 0;i < l;i++) {
@@ -1671,7 +1684,7 @@ KISSY.add("dom/base/selector", ["./api"], function(S, require) {
16711684
}
16721685
function makeClassMatch(className) {
16731686
return function(elem) {
1674-
return elem.getElementsByClassName(className)
1687+
return getElementsByClassName(elem, className)
16751688
}
16761689
}
16771690
function makeTagMatch(tagName) {
@@ -1694,8 +1707,8 @@ KISSY.add("dom/base/selector", ["./api"], function(S, require) {
16941707
if(selector === "body") {
16951708
ret = [doc.body]
16961709
}else {
1697-
if(rClassSelector.test(selector) && supportGetElementsByClassName) {
1698-
ret = makeArray(doc.getElementsByClassName(RegExp.$1))
1710+
if(rClassSelector.test(selector)) {
1711+
ret = makeArray(getElementsByClassName(doc, RegExp.$1))
16991712
}else {
17001713
if(rTagIdSelector.test(selector)) {
17011714
el = Dom._getElementById(RegExp.$2, doc);
@@ -1708,7 +1721,7 @@ KISSY.add("dom/base/selector", ["./api"], function(S, require) {
17081721
if(rTagSelector.test(selector)) {
17091722
ret = makeArray(doc.getElementsByTagName(selector))
17101723
}else {
1711-
if(isSimpleSelector(selector) && supportGetElementsByClassName) {
1724+
if(isSimpleSelector(selector)) {
17121725
var parts = selector.split(/\s+/), partsLen, parents = contexts, parentIndex, parentsLen;
17131726
for(i = 0, partsLen = parts.length;i < partsLen;i++) {
17141727
parts[i] = makeMatch(parts[i])

0 commit comments

Comments
 (0)