js基础和js操作bom和dom对象

Posted zz洲神在此

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js基础和js操作bom和dom对象相关的知识,希望对你有一定的参考价值。

流程控制

if判断

if (a == 1){  //判断条件写在小括号里面,大括号里面写条件判断成功后的代码内容
	console.log(\'1111\');
}
else{
   console.log(\'222\');
}

多条件判断

    var a = 0;
    if(a > 1){
        // console.log(\'1111\');
        // var hhhh = document.getElementById(\'d1\');
        // hhhh.innerText = \'彭于晏\';
    }else if(a<1){

        console.log(\'2222\');
    }else {
        console.log(\'3333\');
    }

运算符

> < == !=  >=  <=   ===  !==

var a = 2;
var b = \'2\';
a == b;  true  弱等于
a === b;  false  强等于
a != b;  false
a !== b;   true

算术运算

+  -  * / %   ++  --  
++ 自增 1  
-- 自减 1

var a = 2;
a++  先执行逻辑  在+1
++a  先+1 在执行逻辑

简单示例:
	if (++a === 4){
        console.log(\'xxx\');
    }
    else{
        console.log(\'ooo\');
    };

switch判断

var num = 200;
switch(num++){
    case 10:
        console.log(\'未成年\');
        break;
    case 18:
        console.log(\'成年\');
        break;
    case 35:
        console.log(\'油腻老男人\');
        break;
    case 100:
        console.log(\'....\');
        break;
    default:
        console.log(\'嘻嘻嘻\');
};

异常捕获

try{
	console.log(xx);
}catch(e){
	console.log(e);
}
finally{
	console.log(\'sssss\');
}

循环

for循环

for (var i=0;i<100;++i){
	console.log(i);  
};

循环数组
	var d = [11,22,33];
    for (var i in d){
    	if (d[i] === 22){
			continue;
			// break;
		}
        console.log(i,d[i]);
    }
	for (var i=0;i<d.length;i++){
        console.log(i,d[i]);
    };
循环自定义对象--python字典
	for (var i in d){
        console.log(i,d[i]);  #不要用d.i来取值
    }

while

var a = 0;
while(a<5){
	a++;
	if (a===2){
      continue;
	}
	console.log(a);
}

js的基础数据类型都有布尔值属性, []--false 0,{},\'\',undefined,null,NaN

字符串转数字:
	var a = \'11\';
	parseInt(a);
	
	var a = \'23abc\';
	parseInt(a);   23
	
	var a = \'asdfabc\';
	parseInt(a); -- NAN  -- not a number
	typeof NaN;  -- "number"
	NaN === NaN; -- false
	NaN == NaN; -- false

函数

普通函数

function f1(a,b){
	return a+b;
}
执行: f1(1,2) -- 3
function f1(a,b){
	return a,b;
};

f1(1,2);
不能返回多个值:  2

匿名函数

var a = function (a,b){
	console.log(\'xxx\');
}

var d = {\'xx\':\'oo\',\'f\':function (a,b){
	console.log(\'xxx\');
}};
执行:d.f(1,2);

自执行函数

    (function () {
        alert(\'自执行函数!\')
    })()

序列化

var d = {\'a\':\'aa\',\'b\':18};
序列化:
	var d_json = JSON.stringify(d); //python  json.dumps(d);
反序列化:
	d_json = "{"a":"aa","b":18}"
	var reverse_json = JSON.parse(d_json);

BOM对象 浏览器对象模型

弹框

alert(\'xx\');
confirm(\'are you sure?\')

location对象

location.href;  获取当前页面的地址
location.href = \'http://www.baidu.com\'; 跳转到这个网址上
location.reload();  刷新当前页面

计时器

第一种:一段时间之后执行某个任务
	设置:var t = setTimeout(function(){confirm(\'你满18岁了吗?\')},5000);
		var t = setTimeout("console.log(\'xxx\')",1000);
		t就是浏览器用来记录你的计时器的标识数字
	清除:clearTimeout(t)
第二种:每隔一段时间执行某个任务
	设置:var t = setInterval(function(){confirm(\'弹个框!!\')},3000);
	清除:clearInterval(7);

DOM对象

html文档(.html文件)

直接查找选择器

html代码:
	<div class="c1" id="d1"></div>
	<div class="c1 c2" id="d2"></div>
css代码:
	   .c1{
            background-color: green;
            height: 100px;
            width: 100px;
        }
        .c2{
            background-color: red;
            /*height: 100px;*/
            /*width: 100px;*/
            color:red;
        }

按标签名查找: var divEle = document.getElementsByTagName(\'div\');
按id值查找:  var d1 = document.getElementById(\'d1\');
			示例: d1.style.height = \'600px\';
按类值查找:var a = document.getElementsByClassName(\'c1\');

上边的例子就是找到所有div标签,多个的时候getElements,记住加s,然后放到了一个数组里,然后通过style操作标签css样式,这就是通过原生DOM对象,操作css样式

文本操作

间接查找选择器

var div1 = document.getElementsByClassName(\'c1\')[0]; 
div1.nextElementSibling.style.color = \'red\';  找下一个兄弟标签,并改了色
div1.previousElementSibling;  找上一个兄弟
div1.firstElementChild;  找第一个儿子
div1.lastElementChild;  找最后一个儿子
div1.children;  找所有儿子,是一个数组
div1.parentElement;  找到自己的父级标签
innerText
	获取文本:
		var a = document.getElementById(\'jd\')
		a.innerText;  只获取文本内容 就是标签内的内容
    设置文本:
    	a.innerText = \'<a href="">校花</a>\';不能识别标签,单纯的文本内容显示,这样添加的话,文本就会显示带标签样子的文本内容
    	a.innerText = "xxxx"  这样是添加的文本内容
innerHTML
	获取文本	
		var d = document.getElementsByClassName(\'c1\')[0];
		d.innerHTML;  获取的内容包含标签
	设置文本:
		d2.innerHTML = \'<a href="">校花</a>\'; 能够识别标签,生成标签效果

通过上边例子能更清晰看到innerText和innerHTML的区别

value值操作

input标签
	html:
		<input type="text" name="username" id="username" >
	示例:
		var inp = document.getElementById(\'username\'); 找到标签
		inp.value;  获取值
		inp.value = \'200块!\';  修改值

class类值操作

var div1 = document.getElementById(\'d1\');
div1.classList;  // 获取标签类值
div1.classList.add(\'c2\'); // 添加类值
div1.classList.remove(\'c3\'); // 删除类值
div1.classList.toggle(\'c3\');  // 有就删除,没有就添加
var t = setInterval("div1.classList.toggle(\'c3\')",1000);  //定时器添加

HTML的label标签

    <label >用户名: 
        <input type="text" name="username" id="username">
    </label>
    <label for="password">密码: </label>
    <input type="password" name="password" id="password">
    这就是label标签写上input标签的id属性,然后就能给input标签前面加文本了,就是 密码:input标签的框

button

普通按钮,没有提交效果
<input type="button">
<button type="button">注册</button>

下面两个能够提交form表单数据
<input type="submit" value=\'登录\'>
<button type="submit">注册</button>

以上是关于js基础和js操作bom和dom对象的主要内容,如果未能解决你的问题,请参考以下文章

JS基础

js操作bom和dom

JS DOM(文档对象模型)与BOM(浏览器对象模型)

JS的DOM和BOM

前端基础之BOM和DOM

前端入门06——BOM与DOM