Skip to content
This repository was archived by the owner on Jun 21, 2024. It is now read-only.

Commit d85136c

Browse files
committed
Release v3.0.0
1 parent 6c6480d commit d85136c

File tree

4 files changed

+69
-13
lines changed

4 files changed

+69
-13
lines changed

dist/module/mquery.js

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -723,7 +723,7 @@ exports.mQuery = m$;
723723
* NOTE: [], 0 and "" will return true.
724724
*/
725725
function isSet(param) {
726-
return param !== void 0;
726+
return !(param === void 0 || param === null);
727727
}
728728
/**
729729
* Verify if array-like object is empty
@@ -1349,12 +1349,31 @@ exports.mQuery = m$;
13491349
* Find elements by selector in context and insert in inst.
13501350
*/
13511351
function find(inst, context, selector) {
1352+
let type = selector.match(/^([#.]?)([-\w]+)(.*)$/), fn;
1353+
if (typeOf(selector, 'string')) {
1354+
if (type[3]) { // selector
1355+
fn = 'querySelectorAll';
1356+
}
1357+
else if (!type[1]) { // tag
1358+
fn = 'getElementsByTagName';
1359+
}
1360+
else if (type[1] === '.') { // class
1361+
fn = 'getElementsByClassName';
1362+
selector = type[2];
1363+
}
1364+
}
13521365
try {
1353-
context.each((_, elem) => {
1354-
if (!elem.querySelectorAll) {
1366+
context.each((_, el) => {
1367+
if (fn) {
1368+
if (!el[fn]) {
1369+
return;
1370+
}
1371+
merge(inst, el[fn](selector));
1372+
}
1373+
if (!el.querySelector) {
13551374
return;
13561375
}
1357-
merge(inst, elem.querySelectorAll(selector));
1376+
merge(inst, [el.querySelector(selector)]);
13581377
});
13591378
return setContext(inst, context);
13601379
}

dist/web/mquery.js

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -736,7 +736,7 @@ var mQuery = m$;
736736
* NOTE: [], 0 and "" will return true.
737737
*/
738738
function isSet(param) {
739-
return param !== void 0;
739+
return !(param === void 0 || param === null);
740740
}
741741
/**
742742
* Verify if array-like object is empty
@@ -1369,12 +1369,31 @@ var mQuery = m$;
13691369
* Find elements by selector in context and insert in inst.
13701370
*/
13711371
function find(inst, context, selector) {
1372+
var type = selector.match(/^([#.]?)([-\w]+)(.*)$/), fn;
1373+
if (typeOf(selector, 'string')) {
1374+
if (type[3]) { // selector
1375+
fn = 'querySelectorAll';
1376+
}
1377+
else if (!type[1]) { // tag
1378+
fn = 'getElementsByTagName';
1379+
}
1380+
else if (type[1] === '.') { // class
1381+
fn = 'getElementsByClassName';
1382+
selector = type[2];
1383+
}
1384+
}
13721385
try {
1373-
context.each(function (_, elem) {
1374-
if (!elem.querySelectorAll) {
1386+
context.each(function (_, el) {
1387+
if (fn) {
1388+
if (!el[fn]) {
1389+
return;
1390+
}
1391+
merge(inst, el[fn](selector));
1392+
}
1393+
if (!el.querySelector) {
13751394
return;
13761395
}
1377-
merge(inst, elem.querySelectorAll(selector));
1396+
merge(inst, [el.querySelector(selector)]);
13781397
});
13791398
return setContext(inst, context);
13801399
}

dist/web/mquery.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/mquery.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,7 +1040,7 @@ export namespace m$ {
10401040
* NOTE: [], 0 and "" will return true.
10411041
*/
10421042
function isSet(param: any): boolean {
1043-
return param !== void 0;
1043+
return !(param === void 0 || param === null);
10441044
}
10451045

10461046
/**
@@ -1717,10 +1717,28 @@ export namespace m$ {
17171717
* Find elements by selector in context and insert in inst.
17181718
*/
17191719
function find(inst: mQuery, context: mQuery, selector: any): mQuery {
1720+
let type = selector.match(/^([#.]?)([-\w]+)(.*)$/), fn: string;
1721+
if (typeOf(selector, 'string')) {
1722+
if (type[3]) { // selector
1723+
fn = 'querySelectorAll';
1724+
1725+
} else if (!type[1]) { // tag
1726+
fn = 'getElementsByTagName';
1727+
1728+
} else if (type[1] === '.') { // class
1729+
fn = 'getElementsByClassName';
1730+
selector = type[2];
1731+
}
1732+
}
17201733
try {
1721-
context.each((_, elem) => {
1722-
if (!elem.querySelectorAll) { return }
1723-
merge(inst, elem.querySelectorAll(selector));
1734+
context.each((_, el) => {
1735+
if (fn) {
1736+
if (!el[fn]) { return; }
1737+
merge(inst, el[fn](selector));
1738+
}
1739+
1740+
if (!el.querySelector) { return; }
1741+
merge(inst, [el.querySelector(selector)]);
17241742
});
17251743
return setContext(inst, context);
17261744
} catch (e) {

0 commit comments

Comments
 (0)