模仿jquery框架源码 -成熟---选择器
2024-10-21 17:26:24
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.red {
color: red;
}
</style>
</head>
<body>
<div class="red">1</div>
<div>2</div>
<div>3</div>
</body>
<script language="javascript" type="text/javascript">
var $ = jQuery = function( selector, context ){ //定义类
return new jQuery.fn.init(selector, context); //返回选择器的实例 }
//jQuery类的原型对象
jQuery.fn = jQuery.prototype = {
init : function(selector, context){ //定义选择器构造器 selector = selector || document; //设置默认值为document
context = context || document; //设置默认值为document if( selector.nodeType ) { //如果选择符为节点对象
this[0] = selector; //把参数节点传递给实例对象的数组
this.length = 1; //并设置实例对象的length属性,定义包含的元素个数
this.context = selector; //设置实例的属性,返回选择范围
return this; //返回当前实例
} if( typeof selector === "string" ) { //如果选择符是字符串
var e = context.getElementsByTagName(selector);
//获取指定名称的元素 for( var i = 0; i < e.length; i++ ){//遍历元素集合,并把所有元素填入到当前实例数组中
this[i] = e[i];
}
this.length = e.length; //设置实例的length属性,即定义包含的元素个数 this.context = context; //设置实例的属性,返回选择范围
return this; //返回当前实例
} else {
this.length = 0; //否则,设置实例的length属性值为0
this.context = context;
return this; //返回当前实例
}
},
jquery: "1.3.2", //原型属性
size: function() { //原型方法
return this.length;
}
}
jQuery.fn.init.prototype = jQuery.fn; //使用jQuery的原型对象覆盖init的原型对象
alert( $("div").size() ); //返回3
</script>
</html>
最新文章
- 单元测试实战 - Junit测试
- 工作记事 unknownHost
- 锋利的JQuery —— Ajax
- 【BZOJ 1178】【APIO 2009】CONVENTION会议中心
- {Links}{Matting}{Saliency Detection}{Superpixel}Source links
- 苹果API常用英语名词
- swift 异步加载图片(第三方框架ImageLoader)
- 断言--NSAssert
- 1066. Root of AVL Tree (25)
- 高效开发Android App的10个建议(转)
- Ubuntu消息菜单(MessagingMenu)API
- Linux dd 命令
- 【iOS】彩虹渐变色 的 Swift 实现
- Eclipse rap 富客户端开发总结(7) : 如何修改rap的样式
- macOS实现视频转音频以及音频拼接
- struct放入list中按照某字段排序
- 一道面试题(C语言)
- oracle pls-00382:表达式类型错误
- xpath &; <;tr>;<;td>;<;br>;
- Java的入门知识和环境配置