# gQuery
**Repository Path**: ganxiaozhe/gQuery
## Basic Information
- **Project Name**: gQuery
- **Description**: JavaScript 函数库,丰富组件及调及用,高效构建快速且强大的前端项目。
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://gquery.cn/
- **GVP Project**: No
## Statistics
- **Stars**: 16
- **Forks**: 1
- **Created**: 2020-09-17
- **Last Updated**: 2025-03-07
## Categories & Tags
**Categories**: javascript-toolkits
**Tags**: None
## README
# gQuery
The brand new JavaScript function library, and killed IE
- Only 9.4kB minified and gzipped. Can also be included as an AMD module
- Supports CSS3 selectors to find elements as well as in style property manipulation
- Use native animation API. Support all major browsers
# Why gQuery
众所周知 jQuery 是一个非常健壮的 JavaScript 库,它提供的 API 易于使用且兼容众多浏览器(例如令开发者头痛的 Internet Explorer)。
毫无疑问它曾改变了前端代码书写的模式,并且延续至今。
不过随着现代浏览器不断迭代的 API,在家庭电脑中几乎已无法见到 IE 的影子,而 Windows 默认浏览器也早已换成 Edge(并已放弃 EDGEHTML 而使用 Chromium)。
如今现代浏览器中,jQuery 难免显得有些臃肿,且绝大多数开发者并未完全使用其函数。各大平台(Github ...)和框架(Bootstrap 5 ...)也都和 jQuery 逐渐告别。
在这一境况下,我决定在新项目中也不再引入 jQuery 库,而转头重写了 gQuery 这更为精小的函数库。在继承 jQuery 中的常用函数同时,拓展了许多我平时常用的操作函数。其代码大小在压缩后仅有 14kB,并完全在 MIT 下开源。
另外,大多数 jQuery 插件仅需小量修改即可适用于 gQuery。
如果不考虑兼容 IE,同时喜欢极简自由的开发,强烈建议使用 gQuery 以获得更好的体验。
gQuery 及 GQUI 良好兼容 Electron 及 NW.js,并已开发过成熟商业软件。
# Docs [过时]
https://www.gquery.net/docs/
# Let's try gQuery
gQuery: 取值操作
```JavaScript
let val = $('#exGetValues').text();
$('#exPutValues li:nth-child(1)').text( val );
// .text([]) 将返回有序数组
val = $('#exGetValues li').text([]);
$('#exPutValues li:nth-child(2)').text( val.join(',')+'。' );
$('#exPutValues li:nth-child(3)').html('—— 张爱玲');
```
gQuery: 事件委派
```JavaScript
$('#todoList').on('click', 'li', function(){
$(this).remove();
});
$('#todoList').on({
mousedown: function(e){
console.log(this, e);
},
mouseup: function(e){
console.log(this, e);
}
}, 'li');
```
gQuery: fade 操作
```JavaScript
$('.exFadeShow').html("It's").append('');
// wait 实现更优雅的 setTimeout
$('.exFadeShow').wait(500).fadeToggle(800,function(){
$(this).html('gQuery').fadeIn(800);
});
```
gQuery: slide 操作
```JavaScript
$('.exSlideShow > .header > .bullets > .bg-red,.exSlideShow > .header > .bullets > .bg-green').off('click').on('click',function(){
let body = $(this).parent().parent().next();
if( $(this).hasClass('bg-red') ){
body.slideUp(300);
} else {
body.slideDown(300);
}
});
```
### gQuery: array{}
```JavaScript
let CHAT_RECORD = [
{id:0,name:'甘大蔗',msg:'为什么会有人把大花被穿身上啊?'},
{id:1,name:'甘小蔗',msg:'小燕子穿花衣'},
{id:2,name:'甘小蔗',msg:'年年春天来这里'},
{id:3,name:'甘小蔗',msg:'我问燕子你为啥来'},
{id:4,name:'甘大蔗',msg:'呃呃'},
{id:5,name:'甘小蔗',msg:'燕子说'},
{id:6,name:'甘小蔗',msg:'“先他妈管好你自己”'},
{id:7,name:'甘大蔗',msg:'乌鱼子'},
];
let newArr = $.array.finder(CHAT_RECORD, {name:'甘大蔗'}, {limit:2});
$('#ex-array-finder').text( JSON.stringify(newArr) );
```
### gQuery: cookie{}
```
$.cookie.get(key:String [, json:Boolean])
$.cookie.set(key:String, value:Mixed [, options:Object])
$.cookie.remove(key:String)
```
### gQuery: storage{}
```JavaScript
var storageEx = [];
$.storage.remove('exampleData');
storageEx.push( JSON.stringify( $.storage.local() ) );
$.storage.set('exampleData',storageEx);
storageEx.push( $.storage.get('exampleData') );
$.storage.set('exampleData','gQuery');
storageEx.push( $.storage.get('exampleData') );
$.storage.push('exampleData','is');
$.storage.push('exampleData','a');
$.storage.push('exampleData','Smaller and faster modern JavaScript function library');
storageEx.push( $.storage.get('exampleData') );
storageEx.push( $.storage.get('exampleData','array').join(' ') );
$('#exStorageData').html( storageEx.join('\n\n') );
```
Result: storageEx
```javascript
{"theme":"light","indexInit":"1"}
["{\"theme\":\"light\",\"indexInit\":\"1\"}"]
gQuery
["gQuery","is","a","Smaller and faster modern JavaScript function library"]
gQuery is a Smaller and faster modern JavaScript function library
```
### gQuery: get{}
```javascript
$.get.queryParam(name:String)
$.get.browserSpec()
$.get.json(url:String, data:Object)
```
### gQuery: fetch 操作
`$.fetch(url:String:Object [, data:Object, bodyMethod:String])`
```javascript
$.fetch('/lib/js/gquery.ui.js', 'text').then(data => {
console.log(data);
});
$.fetch('/lib/json/enneagram.json', 'json').then(data=>{
console.log(data);
})
$.fetch('/lib/php/user/info.php', {
id: 168,
token: 'a6440a91c528dadfc7d5323dc626686a'
}, 'json').then(data => {
console.log(data);
});
```
### gQuery: Date 操作
```javascript
let $date = $('#exDate > li');
$date.eq(0).text( $.date().format() );
$date.eq(1).text( $.date(1630862585909).format('本世纪第yy年的m月d日 hh:ii:ss') );
$date.eq(2).text( $.date('2002-2-14 2:30:00').format() );
$date.eq(3).text( $.date('-3d').calc('+4 hours').calc('-2h').format() );
$date.eq(4).text( $.date().diff('-3d').ago() );
// console.log( $.date() )
```
......