day01-获取元素的第二种方法

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script>
/*
#list {} var oUl = document.getElementById('list'); 静态方法 li {} document.getElementsByTagName('li'); 动态方法
#list li {} var aLi = oUl.getElementsByTagName('li');
// aLi => [ li, li, li ] 元素的集合
aLi.length 3
aLi[0]
// 在用 TagNasme 的时候,必须要加上:[]
*/
window.onload = function (){
// var oUl = document.getElementById('list');
var oUl = document.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li'); // document.getElementsByTagName('li'); // alert( aLi.length );
};
</script>
</head> <body> <ul id="list">
<li></li>
<li></li>
<li></li>
</ul> <ol>
<li></li>
<li></li>
</ol> </body>
</html>

day02-获取元素的第二种方法

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title> <script>
window.onload = function (){
// document.title = 123;
// document.body.innerHTML = 'abc';
var aBtn = document.getElementsByTagName('input');
//getElementByIdq前面只能是document找到一个元素 getElementsByTagName前面可以是document也可以是别的元素,找到一个集合
// alert(aBtn.length); document.body.innerHTML = '<input type="button" value="按钮" /><input type="button" value="按钮" /><input type="button" value="按钮" />'; // alert(aBtn.length);
aBtn[0].onclick = function (){ alert(1); };
aBtn[1].onclick = function (){ alert(1); };
aBtn[2].onclick = function (){ alert(1); }; // 重复执行某些代码
// 每次执行的时候,有个数字在变化
};
</script> </head> <body>
</body>
</html>

day03-初试for循环

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title> <script> // 循环: /*
var i = 0;
for ( ; i<3; ) {
alert(1);
i++;
} 1) var i=0; 2) i<3; 关键!!!!
3) 括号里面的所有代码
4) i++
*/ for(var i=0; i<3; i++){
// alert(i);
}
// alert(i); // 3 </script> </head> <body>
</body>
</html>

day04-循环简单应用

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
li { height:30px; border-bottom:1px solid #333; }
</style>
<script>
window.onload = function (){
var oUl = document.getElementById('list');
var aLi = oUl.getElementsByTagName('li');
var arr = [ '今天', '明天', '后天' ];
var len = arr.length; /*
aLi[0].onclick = function (){ alert(1); };
aLi[1].onclick = function (){ alert(1); };
aLi[2].onclick = function (){ alert(1); };
*/
// aLi.onclick = function (){ alert(1); }; for( var i=0; i<len; i++ ){ aLi[i].innerHTML = arr[i]; aLi[i].onclick = function (){
// alert(i); i => 3
};
}
};
</script>
</head> <body> <ul id="list">
<li></li>
<li></li>
<li></li>
</ul> </body>
</html>

[循环包函数得到的是循环最终的值]

[循环中性能的小技巧:先把len保存下来,然后将len常量放入循环内,减少len的重复计算]

[循环中性能小技巧:如果向一个标签插入多个元素,先避免直接插入,将数据填充完整后一次性插入效果更佳]

day05-for循环生成坐标

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title> <style>
div { width:50px; height:50px; background:red; position:absolute; top:0; left:0; font-size:30px; text-align:center; line-height:50px; color:#fff; }
</style> <script>
window.onload = function (){
var aDiv = document.getElementsByTagName('div'); for( var i=0; i<11; i++ ){
document.body.innerHTML += '<div>' + i + '</div>';
} for( var i=0; i<aDiv.length; i++ ){
aDiv[i].style.left = 10 + i*50 + 'px';
aDiv[i].style.top = 10 + i*50 + 'px';
} };
</script>
</head> <body> </body>
</html>

day06-for套for

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title> <script> var arr = [
[ 1,2,3,4,'4+' ],
[ 4,5,6 ],
[ 7,8,9 ]
]; // arr[1][2] for( var i=0; i<arr.length; i++ ){
// arr[i][0]
// arr[i][1]
// arr[i][2]
for( var j=0; j<arr[i].length; j++ ){
// alert( arr[i][j] );
}
} // for( var i=0; ){}
// for( var i=0; ){} window.onload = function (){
var oUl = document.getElementById('list');
var aUl = oUl.getElementsByTagName('ul');
var len = aUl.length;
var aLi = null; // 空 for( var i=0; i<len; i++ ){
aLi = aUl[i].getElementsByTagName('li'); for( var j=0; j<aLi.length; j++ ){
aLi[j].style.border = '1px solid red';
}
}
};
</script> </head> <body> <ul id="list">
<li>
<h2>我的好友</h2>
<ul>
<li>莫涛</li>
<li>张森</li>
<li>杜鹏</li>
</ul>
</li>
<li><ol><li>no</li><li>no</li><li>no</li></ol></li>
<li>
<h2>我的坏友</h2>
<ul>
<li>莫小涛</li>
<li>张小森</li>
</ul>
</li>
<li><ol><li>no</li><li>no</li><li>no</li></ol></li>
<li>
<h2>我的黑名单</h2>
<ul>
<li>莫张</li>
</ul>
</li>
</ul> </body>
</html>

day07-cssText

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title> <style>
div { width:100px; height:100px; border:1px solid #333; }
</style> </head> <body> <div id="div1">123</div> <input id="btn1" type="button" value="按钮" /> <script>
var oDiv = document.getElementById('div1');
var oBtn = document.getElementById('btn1'); oDiv.onclick = function (){
// oDiv.style.width = '200px';
oDiv.style.cssText = ' width:200px; height:200px; ';
};
oBtn.onclick = function (){
// oDiv.style.width = '100px';
oDiv.style.cssText = '';
};
//css样式使用oDiv.style.cssText是全部替换现有元素样式,style原有值不替换
</script> </body>
</html>

day08-生成新闻

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title> <script>
window.onload = function (){
var oBtn = document.getElementById('btn1');
var oUl = document.getElementById('list');
var arr = [
'山西省委附近多次爆炸 官方称尚不确定是恐怖袭击',
'甘肃张掖明令禁止转基因 书记:无力辨别只能禁止',
'多地制定雾霾预案限行限排被批治标不治本',
'韩媒抱怨中国雾霾侵袭韩国 称其为"黑色灾难" ',
'伊朗革命卫队高官在叙利亚当"志愿者"被杀(图)'
]; /*
思路:
1、按钮找麻烦 (用户体验不太好)
2、先清空,再生成
3、判断
*/ var onOff = true; oBtn.onclick = function (){ // oBtn.disabled = true;
// oBtn.style.display = 'none'; // oUl.innerHTML = ''; // onOff = false; no!!!! if( onOff ) { // onOff = false; ok for( var i=0; i<arr.length; i++ ){
oUl.innerHTML += '<li>' + arr[i] + '</li>';
}
// onOff = false; ok
}
onOff = false;
};
};
</script> </head> <body> <input id="btn1" type="button" value="自动生成5条新闻" />
<ul id="list" style="border:1px solid red;"></ul> <script>
alert( document.getElementById('list').style.border );
</script> </body>
</html>

day09-this

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title> <script> // this : 这个
// this: 指的是调用 当前 方法(函数)的那个对象 function fn1(){
// this
}
// fn1(); this => window
// oDiv.onclick = fn1; this => oDiv
/*
oDiv.onclick = function (){
fn1(); fn1() 里的this => window
}; <div onclick=" this fn1(); "></div> fn1(); 里的 this 指的是 window
*/ // alert( this ); // object window // window 是 JS “老大”
// window.alert( this ); function fn1(){
alert( this ); // window
}
// fn1();
// window.fn1();
</script> </head> <body> <input id="btn1" type="button" value="按钮" /> <input id="btn2" type="button" onclick=" fn1(); " value="按钮2" /> <script>
var oBtn = document.getElementById('btn1');
// oBtn.onclick = fn1;
oBtn.onclick = function (){
// this
fn1();
};
</script> </body>
</html>

day10-this的应用1

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title> <script> /*
alert(this); window fn1(this);
function fn1(obj){
obj => window
} oDiv.onclick = function (){
this
fn1(this);
};
function fn1(obj){ obj => oDiv }
*/ window.onload = function (){
var aBtn = document.getElementsByTagName('input');
var that = null; // 空 for(var i=0; i<aBtn.length; i++){
/*
aBtn[i].onclick = function (){
// this.style.background = 'yellow'; that = this; fn1();
};
*/
aBtn[i].onclick = fn1;
} function fn1(){
// this => window
// that.style.background = 'yellow'; // this.style.background = 'red';
}
};
</script> </head> <body> <input type="button" value="按钮1" />
<input type="button" value="按钮2" />
<input type="button" value="按钮3" /> </body>
</html>

day11-this的应用2

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
li { width:100px; height:150px; float:left; margin-right:30px; background:#f1f1f1; position:relative; z-index:1; }
div { width:80px; height:200px; background:red; position:absolute; top:75px; left:10px; display:none; }
</style>
<script>
window.onload = function (){
var aLi = document.getElementsByTagName('li');
var that = null; for( var i=0; i<aLi.length; i++ ){
aLi[i].onmouseover = function (){
that = this;
fn1();
};
aLi[i].onmouseout = function (){
this.getElementsByTagName('div')[0].style.display = 'none';
};
} function fn1(){
that.getElementsByTagName('div')[0].style.display = 'block';
}
};
</script>
</head> <body> <ul>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
</ul> </body>
</html>

javascript-初级-day02-this关键字的更多相关文章

  1. javascript call与apply关键字的作用

    apply接受两个参数.第一个参数指定函数体内this对象的指向,第二个参数为一个带下标的集合. call则是apply的语法糖,如果参数数量固定,则可以不用带下标的集合传第二个参数. 1 2 3 4 ...

  2. 转载 深入理解JavaScript中的this关键字

    转载原地址: http://www.cnblogs.com/rainman/archive/2009/05/03/1448392.html 深入理解JavaScript中的this关键字   1. 一 ...

  3. JavaScript中的this关键字的用法和注意点

    JavaScript中的this关键字的用法和注意点 一.this关键字的用法 this一般用于指向对象(绑定对象); 01.在普通函数调用中,其内部的this指向全局对象(window); func ...

  4. 如何理解JavaScript中的this关键字

    前言 王福朋老师的 JavaScript原型和闭包系列 文章看了不下三遍了,最为一个初学者,每次看的时候都会有一种 "大彻大悟" 的感觉,而看完之后却总是一脸懵逼.原型与闭包 可以 ...

  5. 关于javascript中的this关键字

    this是非常强大的一个关键字,但是如果你不了解它,可能很难正确的使用它. 下面我解释一下如果在事件处理中使用this. 首先我们讨论一下下面这个函数中的this关联到什么. function doS ...

  6. 浅显易懂的理解JavaScript中的this关键字

    在JavaScript中this变量是一个令人难以摸清的关键字,this可谓是非常强大,充分了解this的相关知识有助于我们在编写面向对象的JavaScript程序时能够游刃有余. 1. 一般用处 对 ...

  7. JavaScript中的this关键字

    在JavaScript中,函数的this关键字的行为与其他语言相比有很多不同.在JavaScript的严格模式和非严格模式下也略有区别. 在绝大多数情况下,函数的调用方式决定了this的值.this不 ...

  8. 正确理解JavaScript中的this关键字

    JavaScript有this关键字,this跟JavaScript的执行上下文密切相关,很多前端开发工程师至今对this关键字还是模棱两可,本文将结合代码讲解下JavaScript的this关键字. ...

  9. 用自然语言的角度理解JavaScript中的this关键字

    转自:http://blog.leapoahead.com/2015/08/31/understanding-js-this-keyword/ 在编写JavaScript应用的时候,我们经常会使用th ...

  10. 【转】JavaScript中的this关键字使用的四种调用模式

    http://blog.csdn.net/itpinpai/article/details/51004266 this关键字本意:这个.这里的意思.在JavaScript中是指每一个方法或函数都会有一 ...

随机推荐

  1. 【Python123】练习1: Python基本语法元素 (第1周)

    实例1: 温度转换 这是"实例"题,与课上讲解实例相同,请作答检验学习效果.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬ ...

  2. C++控制台应用程序一闪而过的解决方法

    Visual Studio 2017 C++控制台应用程序, 如果编译时发现黑框一闪而过,请按以下步骤操作: 右键project → 属性 → 链接器 → 系统 → 子系统,在下拉菜单中改为控制台.

  3. python和js分别在多行字符串中插入一行字符串

    问题 一个多行字符串,"asfdb;\nwesfpjoing;\nwbfliqwbefpwqufn\nasfdwe\nsafewt\nqwern\nvar\ntgwtg\n\nftwg\n& ...

  4. 【Spring】重新认识 IoC

    前言 IoC (Inversion of control) 并不是Spring特有的概念. IoC 维基百科的解释: In software engineering, inversion of con ...

  5. Sequence Model-week2编程题1-词向量的操作【余弦相似度 词类比 除偏词向量】

    1. 词向量上的操作(Operations on word vectors) 因为词嵌入的训练是非常耗资源的,所以ML从业者通常 都是 选择加载训练好 的 词嵌入(Embedding)数据集.(不用自 ...

  6. [敏捷软工团队博客]项目介绍 & 需求分析 & 发布预测

    项目 内容 2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 团队项目选择 我们在这个课程的目标是 在团队合作中锻炼自己 这个作业在哪个具体方面帮助我们实现目标 了解项目整体情况 ...

  7. Noip模拟76 2021.10.14

    T1 洛希极限 上来一道大数据结构或者单调队列优化$dp$ 真就没分析出来正解复杂度 正解复杂度$O(q+nm)$,但是据说我的复杂度是假的 考虑一个点转移最优情况是从它上面的一个反$L$形转移过来 ...

  8. Spark面试题(二)

    首发于我的个人博客:Spark面试题(二) 1.Spark有哪两种算子? Transformation(转化)算子和Action(执行)算子. 2.Spark有哪些聚合类的算子,我们应该尽量避免什么类 ...

  9. 双堆DEAP

    记录一道遇到的考研真题 特性分析: DEAP为一颗完全二叉树,左子树小堆,右子树大堆,故左右子树分别可以用l[].r[]数组存储,用m和n分别表示当前两完全二叉树的结点,左右子树高度差为1,且左子树的 ...

  10. 数据治理之元数据管理的利器——Atlas入门宝典

    随着数字化转型的工作推进,数据治理的工作已经被越来越多的公司提上了日程.作为Hadoop生态最紧密的元数据管理与发现工具,Atlas在其中扮演着重要的位置.但是其官方文档不是很丰富,也不够详细.所以整 ...