// 实现一个简单的Query
function $(selector) {
var firstChar = selector.charAt();
if (firstChar == "#") {
var len = selector.split(" "); if (len.length == ) {
return document.getElementById(selector.slice(,selector.length));
}
else {
var resu = [];
var getId = document.getElementById(len[].slice(,len[].length));
for (var i = ; i < getId.children.length; i++) {
if(getId.children[i].className == len[].slice(,len[].length)) {
resu.push(getId.children[i]);
};
}
return resu[];
}
}
else if (firstChar == ".") {
return document.getElementsByClassName(selector.slice(,selector.length))[];
}
else if (firstChar == "[") {
if (selector.match(/=/)) {
var index = selector.indexOf("=");
var cao1 = selector.slice(,index);
var cao2 = selector.slice(index+,selector.length-);
var all = document.getElementsByTagName('*');
var res1 = [];
for (var i = ; i < all.length; i++) {
if(all[i].getAttribute(cao1)&&all[i].getAttribute(cao1) == cao2) {
res1.push(all[i]);
}
}
return res1[];
}
else {
var cao = selector.slice(,selector.length-);
var all = document.getElementsByTagName('*');
var res = [];
for (var i = ; i < all.length; i++) {
if(all[i].getAttribute(cao)) {
res.push(all[i]);
}
}
return res[];
}
}
else {
return document.getElementsByTagName(selector)[];
}
} // 给一个element绑定一个针对event事件的响应,响应函数为listener
function addEvent(element, event, listener) {
// your implement
element.addEventListener(event,listener,false);
} // 移除element对象对于event事件发生时执行listener的响应
function removeEvent(element, event, listener) {
// your implement
element.removeEventListener(event,listener,false);
} // 实现对click事件的绑定
function addClickEvent(element, listener) {
// your implement
addEvent(element,"click",listener);
} // 实现对于按Enter键时的事件绑定
function addEnterEvent(element, listener) {
// your implement
element.onkeyDown = function(event) {
var e = event || window.event;
if (e&&e.keyCode == ) {
listener();
}
}
} function delegateEvent(element, tag, eventName, listener) {
$.on(element,eventName,function(){
var e = event ||window.event;
var target = e.target ||e.srcElement;
if (target.tagName == tag) {
listener();
}
})
}

$.on = addEvent;
$.un = removeEvent;
$.click = addClickEvent;
$.enter = addEnterEvent;
$.delegate = delegateEvent;

 

百度前端技术学院2015JavaScript基础部分实现自己的小型jQuery的更多相关文章

  1. 百度前端技术学院2015JavaScript基础部分代码实现

    2. JavaScript数据类型及语言基础(一)    2.1 任务描述 创建一个JavaScript文件,比如util.js: 实践判断各种数据类型的方法,并在util.js中实现以下方法:  / ...

  2. 百度前端技术学院2015JavaScript基础部分-BOM

    5.1 任务描述 实现以下函数 // 判断是否为IE浏览器,返回-1或者版本号 function isIE() { // your implement } // 设置cookie function s ...

  3. 百度前端技术学院-基础-day1

    2020.9.14 今天我开始在百度前端技术学院学习基础课程. 先立一个Flag,希望我能在30天之内学完前四十天的课程,后续课程再一天一节. 第一天的内容主要是提供了很多基础学习的网页,比如W3sc ...

  4. 百度前端技术学院(IFE)2016春季学期总结

    今天(5月16日)作为第八个提交者提交了任务五十:RIA微型问卷管理平台 这样一个综合性的大任务,宣告我的IFE春季学期课程学习顺利完成.其实任务五十并不复杂,现在再让我来做,可能一周不到就写出来了, ...

  5. 百度前端技术学院—-小薇学院(HTML+CSS课程任务)

    任务一:零基础HTML编码 课程概述 作业提交截止时间:04-24 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容的质量以及学习难度的合理 ...

  6. 百度前端技术学院task1.10

    任务十:Flexbox 布局练习 面向人群: 有一定HTML及CSS基础的同学 难度: 中 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容 ...

  7. 通过Github Pages在线查看百度前端技术学院完成的任务成果

    前言 .note-content {font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHe ...

  8. 百度前端技术学院-task1.3源代码

    因为其中有图片,所以就给有图片的位置加了边框和设置了大小,这样哪怕图片不显示也可以知道在哪里. <!DOCTYPE html> <html> <head> < ...

  9. 百度前端技术学院-基础-day2

    2020.9.15 今天是学习前端基础技术的第二天,今天制作了一个在线简历,纯html的那种.帮助我复习了以前的基础知识,也增加了新的知识点,比如制作列表可以用fieldset来整合数据. 我的在线简 ...

随机推荐

  1. JAVA 重复提交

    FormServlet package servlet; import java.io.IOException; import javax.servlet.ServletException; impo ...

  2. jq 实现上下排序的一段代码

    前台页面: <div class="adddaren_box"> {%if isset($masterDetailsInfo)%} <div class=&quo ...

  3. 115开jiang监控

    ぁぁあ0ぁぁあ这里是返回值为1的时候下标2的值ぁぁあ

  4. Wiki设置

    在Wiki安装完成后,就wiki会提示下载LocalSettings.php文件,这是wiki的设置文件,当我们要对wiki进行设置的时候,就需要用到这个文件. 下面对常用的操作设置做简要讲解: —— ...

  5. 基于Python的网页文档处理脚本实现

    嵌入式web服务器不同于传统服务器,web需要转换成数组格式保存在flash中,才方便lwip网络接口的调用,最近因为业务需求,需要频繁修改网页,每次的压缩和转换就是个很繁琐的过程,因此我就有了利用所 ...

  6. springmvc 添加Junit4

    junit 单元测试的好处我就不赘述了,本文旨在介绍自己使用的一个方式: 1.添加依赖 <dependency> <groupId>junit</groupId> ...

  7. java ZipOutputStream压缩文件,ZipInputStream解压缩

    java中实现zip的压缩与解压缩.java自带的 能实现的功能比较有限. 本程序功能:实现简单的压缩和解压缩,压缩文件夹下的所有文件(文件过滤的话需要对File进一步细节处理). 对中文的支持需要使 ...

  8. js json 特定条件删除 增加 遍历

    <script type="text/javascript">        //直接声明json数据结构         var myJSONObject = [   ...

  9. Security » Authorization » 通过映射限制身份

    Limiting identity by scheme¶ 通过映射限制身份(这部分有好几个概念还不清楚,翻译的有问题) 36 of 39 people found this helpful In so ...

  10. 自定义scrollview右侧的滑动条

    在做这个功能之前我其实是拒绝的,为什么这么说呢,因为我怕麻烦啊!(开玩笑的,怕麻烦就不做程序员了) 很久没有写博客,这次刚好项目中有个有趣的东西,想拿出来分享一下,希望能帮到某些小伙伴. 首先说说需求 ...