源码:http://yun.baidu.com/share/link?shareid=2310452098&uk=1997604551

1、感觉在写js的时候,最好先理清思路,先干什么,在干什么,不要想到哪里写到哪里;

2、一定要学会调试js,不然你哗哗写了好多,结果一运行,却不知问题出到哪里,那就是浪费时间;

3、正则表达式的写法,以及如何运用,有两种方式,分别采用test()和match();

var pattern=/^[+,-]?\d+$/;
iptValue=ipt.value.trim();
if(!pattern.test(iptValue)){
alert("请确认输入的是数字?");
return;
}
if(!city.match(/^[A-Za-z\u4E00-\u9FA5]+$/)){
alert("城市名必须为中英文字符!")
return;
}

4、事件的绑定,IE和其他浏览器的区别,这段代码可以保存起来,用到的概率很大

//绑定事件函数
function on(element,eventName,listener){
if (element.addEventListener){
element.addEventListener(eventName,listener,false);
}
else if (element.attachEvent){
element.attachEvent('on'+eventName,listener);
}
else
element['on'+eventName]=listener;
}
on(mybt,'click',addBtnHandle);

5、就是如何获取事件对象和目标

//获取事件对象和事件的目标
var EventUtil={
getEvent:function(event){
return event ? event:window.event;
},
getTarget:function(event){
return event.target||event.srcElement;
}
}

6、事件委托实现。将事件绑定在多个兄弟元素的父元素上,再通过target.id来确定是那个元素是目标id了;部分代码摘入如下。

 event=EventUtil.getEvent(event);
var target=EventUtil.getTarget(event);
var tt;
switch(target.id){//
case "l-input":
if (validate()){
t.unshift(ipt.value);
}
break;
case "r-input":
if (validate()){
t.push(ipt.value);
}
break;

7、下面两段涉及到很多知识,包括removeChild, target.tagName.toLowerCase(), target.dataset.num,(e.g. data-num="2"); parseInt;parentNode等等。

event=EventUtil.getEvent(event);
var target=EventUtil.getTarget(event);
if (target.tagName.toLowerCase() === 'span') {//记得要转化为小写;
numUl.removeChild(target);
var tt=target.dataset.num;//如何获取自定义元素的值;
removeData(tt);
alert("移除"+target.innerHTML);//innerHTML也可以用来读;
} //第二段代码
event=EventUtil.getEvent(event);
var target=EventUtil.getTarget(event);
var tt=target.parentNode.dataset.num;//父节点的获取
tt=parseInt(tt);
if (target.parentNode.tagName.toLowerCase() === 'span') {
numUl.removeChild(target.parentNode);
alert("移除"+removeData(tt));
}

8、排序,冒泡排序也不会写了....我就是个坑。

每次比较相邻的两个数,一次循坏结束,最后一个就是最大或者最小的,因此,第二次循坏比较的时候,要减少一次比较的次数,这样一直比较下去。

 for(var i=0;i<length-1;i++){
for(var j=0;j<length-i-1;j++){
if (t[j]>t[j+1]){
tem=t[j];
t[j]=t[j+1];
t[j+1]=tem;
}
}
}

9、在你用js将text输入到htmL的时候,可以添加class,自定义属性,id等等,这样就可以在设置css的时候,或者js中派上用场。

10、如何创建一个元素,并向其中加入子元素和内容等。还有为其设置style属性。

var newSpan = document.createElement('span');
var newSpanText = document.createElement('div');
newSpan.style.position = 'relative';
newSpanText.innerHTML = numbers[i];
newSpanText.style.position = 'absolute';
newSpanText.style.bottom = '-1.5em';
newSpan.style.width = '20px';
newSpan.style.height = numbers[i] + 'px';
newSpan.appendChild(newSpanText);
switch (method) {
case 'leftIn':
result.insertBefore(newSpan, spans[0]);
break;
case 'rightIn':
result.appendChild(newSpan);
break;
}

未来路还很长,继续加油。

百度前端技术学院-task2.18-2.19源码以及个人总结的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. 百度前端技术学院-基础-day17-18

    JavaScript小练习 task 1 基于上一个任务中,关于加减乘除的任务,加上对于特殊情况的判断,比如判断两个输入框是否都是正常输入了数字类型的内容,比如除法的时候除数是否为0,当判断到输入有异 ...

  8. 百度前端技术学院-基础-day7.8

    任务:参考如下设计稿实现HTML页面及CSS样式 代码 点击预览 HTML 1 <!DOCTYPE html> 2 <html lang="en"> 3 & ...

  9. 百度前端技术学院-task1.8源代码以及个人总结

    通过这次任务的练习我学到了很多,现将所学到的以及遇到的问题总结如下. 源码地址:http://pan.baidu.com/s/1kVB2VZL 下面出现的代码,都是摘自这个上面的源码 1.终于明白了a ...

随机推荐

  1. 冲刺博客NO.2

    今日做了什么:   了解到Mob.com有全球短信验证功能,按照官方集成文档下载了SDK,但是还不会写(正在慕课网上学习). 掌握了android开发的一些流程,熟悉了android studio的语 ...

  2. FastReport二维码打印存在的问题

    FastReport二维码打印存在的问题 (2018-05-21 09:28:38) 转载▼ 标签: delphi 分类: Delphi10.2 FastReport本身支持二维码,实际应用中遇到这样 ...

  3. 利用Delphi编程控制摄像头(图)

    你的电脑有没有摄像头?看到别人用QQ玩视屏你会不会去想怎么实现的?这里介绍使用DELPHI使用MS的 AVICAP32.DLL就可轻松的实现对摄像头编程,如果再加上你的网络编程水平,实现一个视屏聊天就 ...

  4. 在windows右键菜单中加入自己的程序 [转载]

    原文链接: http://blog.csdn.net/marklr/article/details/4006356  在windows右键菜单中加入自己的程序 标签: windowsattribute ...

  5. Win7下无法启动sql server fulltext search (mssqlserver)的问题

    在Win7下安装了SQL Server 2005, 但启动“SQL Server FullText Search (MSSQLSERVER)”服务时启动不成功,系统日志显示“SQL Server Fu ...

  6. WPF用户控件库 嵌入外部(VLC)exe

    综合网上资源完成的自己的第一篇博客 ------------------------------------------------------------------------ 网上类似的贴子挺多 ...

  7. 基于emoji 国际通用表情在web上的输入与显示的记录

    定义: emoji 即国际通用表情 场景: 1,ios,android,wp上emoji表情输入与显示 2,web也需作为支撑平台对emoji表情就行输入与显示(解析) 问题: 1,app端输入的表情 ...

  8. 【转】C#如何创建泛型类T的实例

    原文地址:https://www.cnblogs.com/lxhbky/p/6020612.html 最近在学历基类的写法时,遇到了一个问题:如何怎么创建一个泛型类T的实例呢?     废话不多说了, ...

  9. [leetcode.com]算法题目 - Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  10. Web安全测试学习手册-业务逻辑测试

    i春秋作家:Vulkey_Chen 首先感谢朋友倾璇的邀请 http://payloads.online/archivers/2018-03-21/1 ,参与了<web安全测试学习手册>的 ...