您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
jkQuery库(模仿jQuery)
// ==UserScript== /* 远程调用代码 : https://gf.qytechs.cn/scripts/441600-jk/code/jk.user.js php <script src="https://gf.qytechs.cn/scripts/441600-jk/code/jk.user.js<?php echo "?v=".rand(1,10000);?>"></script> js: var url='https://gf.qytechs.cn/scripts/441600-jk/code/jk.user.js'; el=document.createElement('script'); el.src=url+'?rnd='+Math.random(); document.getElementsByTagName("head")[0].appendChild(el); */ // // @name jkQuery // @namespace moe.canfire.flf // @description jkQuery库(模仿jQuery) // @author jk // @license MIT // @match * // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_setClipboard // @grant GM_xmlhttpRequest // @grant GM_info // @grant GM_getResourceText // @grant GM_addStyle // @grant unsafeWindow // @run-at document-start // @connect * // @version 0.0.1.20240905080805 // ==/UserScript== //jk模拟jQuery, //:内部要用的jkQuery合并数组的方法 function merge(first, second) { var l = second.length, i = first.length, j = 0; if (typeof l === "number") { for (; j < l; j++) { first[i++] = second[j]; } } else { while (second[j] !== undefined) { first[i++] = second[j++]; } } first.length = i; return first; } (function (window, undefined) { var core_version = "spring v.1", core_deletedIds = [], core_push = core_deletedIds.push, core_slice = core_deletedIds.slice; var jkQuery = function (selector) { return new jkQuery.fn.init(selector); }; jkQuery.fn = jkQuery.prototype = { jkQuery: core_version,//jkQuery版本 constructor: jkQuery,//覆盖构造函数防止被外部改变 init: function (selector) {//context,rootjkQuery不传了,稍微看看就懂了 //针对不同参数类型进行不同处理方式,如果$("")$(null就直接返回) if (!selector) { //参数不对直接将this返回,想想现在this的值是什么,提示:new init();=>jkQuery.fn.init[0] return this; } else { //如果是字符串juqery会调用查询方法进行查询dom元素(jkQuery调用sizzle专门进行dom解析) var nodes = document.querySelectorAll(selector);//getElementsByName(selector); alert(nodes.length); var arr = []; for (var i = 0; i < nodes.length; i++) { arr.push(nodes[i]); } //如果传递了Context上下文,则在context中寻找元素。这里指定位document this.context = document; this[0] = document; //把selector存到jkQuery中 this.selector = selector; //jkQuery的合并方法,直接拿出来就能用,合并查询结果 var result = merge(this, arr);//this 默认的选择器的一个数组 //对处理过的this进行封装返回,注意为了链式调用,都需要返回this return result; } }, selector: "", length: 0, toArray: function () { return core_slice.call(this); }, get: function (num) { return num == null ? this.toArray() : (num < 0 ? this[this.length + num] : this[num]); }, //这里要注意,想要长得像jkQuery.fn.jkQuery.init[0],并且init方法中的this值为数组就必须加下面这三个字段 push: core_push, sort: [].sort, splice: [].splice } jkQuery.fn.init.prototype = jkQuery.fn; if (typeof window === "object" && typeof window.document === "object") { window.jkQuery = window.jk = jkQuery; } }(window)); /* jk本身是一个对象 jk("selector")其实得到是一个对象数组,本身,也可增加方法 for(let i=0;this.length() jk.fn.可对选择对象数组处理增加方法 */ //扩展选择器方法 jk.fn,是一个json, jk.fn['attr']或jk.fn.attr, $(".cls").attr(); jk.fn.each = function ( func ) { for (var i = 0; i < this.length; i++) { //nodes func( this[i] ); //HTMLElement } return this; }; jk.fn.attr = function (name, value) { for (var i = 0; i < this.length; i++) { var item = this[i]; if (name && value) { item.setAttribute(name, value); } else if (name && !value) { return item.getAttribute(name); //带取值 } } return this; }; jk.fn.css= function (json_or_str ) { //css({display:'none',height:20px;}) css("display:'none';height:20px;") for (var i = 0; i < this.length; i++) { if(typeof(json_or_str)=='object'){ for(var x in json_or_str) this[i].style[x]=json_or_str[x]; } if(typeof(json_or_str)=='string'){ this[i].cssText += " ;"+json_or_str; } } return this; }; /* jk(".test").attr("style","border:1px solid red;") jk(".test").each(function (){ this.onclick=function(){alert(1)} }); //$(".test").attr("value","xxx"); /// alert($(".test").attr("value")); //================================================= //jk是一个json,扩展其静态方法 jk.ajax 或 jk['ajax'] jk.ajax2=function(){ alert("ajax"); } jk.ajax2(); jk('.test')[0].onclick=function(){ alert(this); } */
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址