jquery match 菜鸟 javascript菜鸟教程_css

JS入门基础

写JS的步骤

先实现布局

想出实现原理

了解JS语法

希望把某个元素移除的实现

display: none; 显示为无

visibility: hidden; 隐藏

width \ height

透明度

left \ top

拿与背景色相同的div盖住该元素

利用margin值

……

获取元素

getElementById() ——静态方法,前面只能跟document

document.body、document.title 页面中只有一个的元素

getElementsByTagName() ——动态方法,前面可以跟document也可以跟其他元素,返回的是一个类似数组的元素的集合

有类似数组的length

有类似数组的应用方式,比如ali[0]

在用TagName的时候,必须要加上中括号[]

所谓的动态方法,是指通过js动态添加的元素,getElementsByTagName()也可以找到,但是document.getElementById是找不到的

事件

事件:鼠标事件、键盘事件、系统事件、表单事件、自定义事件

onclick
onmouseover
onmousedown
onmouseout
onmouseup
onmousemove
……

如何添加事件

元素.onmouseover

函数

函数可以理解为命令,做一些事情,如:

function abc() { //肯定不会主动执行! … }

直接调用:abc();

事件调用:元素.事件 = 函数名 (oDiv.onclick = abc;)

……

function(){} 匿名函数

元素.事件 = function(){}

测试

alert(1); 带确定按钮的警告框;alert('ok'); 'ok' 字符串

初学者:最好保持随时写,随时测试的习惯

变量

var li = document.getElementById('lis');
var num = 123;
var name = 'leo';

JS的属性操作

HTML属性操作

属性名

属性值

属性的读操作:获取、找到

元素.属性名

属性的写操作:替换、修改

元素.属性名 = 新的值

添加的话,需要用 +=

innerHTML 读取元素内的所有HTML代码

字符串连接:加号

属性读写操作的注意事项

JS属性中不允许出现"-",例如font-size改为fontSize

class在js里面是保留字,在js作用class要用className

所有的相对路径都别拿来做判断(如img的src、还有href)

颜色值不要拿来做判断(因为有red、#f00、rgb(250, 0, 0)等写法

相对路径也不要拿来做判断

innerHTML的值别拿来做判断

IE6、IE7、IE8中表单元素的type更改不了,不支持,会报错;其他的都可以。

在有些浏览器中,直接更改float值可能不支持。在js中,可以用IE(styleFloat)和非IE(cssFloat)来区别对待。

不能用来做判断的东西,可以创造一个开关,利用布尔值来实现

关于兼容:

技术上:必须能做到掌握兼容性(兼容性问题的解决方案)

需求上:商量着来(提供最准确的呈现方案)

[]中括号的使用

点"."后面的值无法修改

中括号[]里面的值可以修改;JS中允许把"."替换成"[]"

条件判断

if(条件){……};

if(条件){……} else {……};

if(条件1){……} else if(条件2) {……} else if(条件3) {……} else {……};

数组

"放数据的仓库"

中括号[],半角都好分隔,最后一个数据后面不要加逗号

数组的length属性

为数组最后塞东西用push();

for应用

for循环的使用场景:

如果想要重复执行某些代码

每次执行的时候,有个数字在变化

for循环的执行顺序:1→234→234……

var i = 0;

i < 3; 关键步骤

括号里面的所有代码

i++

注意下面这样一个循环:

for (var i=0; i
aLi[i].onclick = function(){
alert(i);
}
}

以上代码会弹出一个3,而不是一次0、1、2;这里注意,如果在for循环里面包了一个函数,函数里面用了i,那么由于作用域的关系,i不会像你想象的那样逐次增加。

cssText文本格式化与属性操作

oDiv.style.cssText = 'width: 200px; height: 200px;';

cssText不会动head的style中的设置;但是会改变行间样式(注意,是替换行间样式,而非新增行间样式)

按钮点击之后,不再重复功能的思路

找按钮的麻烦,比如点击一次之后,设置oBtn.disabled = true;

继续找按钮的麻烦,比如点击一次后,将按钮隐藏oBtn.style.display = 'none';

将按钮添加的东西清空,然后再添加一次,先清空再生成

用判断

this指向及this应用

window是js中的"老大"

function fn1(){
alert(this);
}
fn1();

上述代码中执行函数fn1()相当于window.fn1();因此,在函数体内弹出这个this仍然是window。

function fn1(){
alert(this);
}
oBtn.onclick = fn1;

上述用按钮的点击事件调用的fn1函数,最终弹出来的是这个按钮,而不是window。

function fn1(){
alert(this);
}
oBtn.onclick = function(){
alert(this)
}

上述代码,点击按钮弹出的this仍然是oBtn这个按钮。

function fn1(){
alert(this);
}
oBtn.onclick = function(){
fn1();
}

上述代码,点击oBtn按钮,弹出的就不再是oBtn这个对象,而是window。

上述代码是行间事件,弹出的this就是这个按钮btn2。

function fn1(){
alert(this);
}