交互三步曲:获取标签,添加事件,事件发生时的反馈

一、获取标签

1.通过id获取

语法:

        document.getElementById("id名"):获取到的是一个唯一标签

//通过id获取元素
var FS = document.getElementById("fs");
//添加事件  标签.onclick = function(){  事件发生时要执行的操作  }
FS.onclick = function(){
    alert("easy");
}

2.通过标签名获取

语法:

        document.getElementsByTagName("标签名") : 获取整个文档中对应标签名的标签

        父元素.getElementsByTagName("标签名") : 获取对应父元素中对应标签名的标签

//通过标签名获取元素:document.getElementsByTagName("标签名")
var LI = document.getElementsByTagName("li");
console.log(LI); //HTMLCollection(5)  元素集合
console.log(LI.length); //5  获取元素集合的个数
console.log(LI[2]); //通过下标获取元素,下标从0开始

//元素集合是一个整体,必须通过下标一个一个取出来使用
LI[2].onclick = function(){
    alert("hello world");
}
LI[1].onclick = function(){
    alert("hello world");
}
//父元素.getElementsByTagName("标签名") : 获取对应父元素中对应标签名的标签
var FS = document.getElementsByTagName("fs")[1];
var LI = FS.getElementsByTagName("li");
console.log(LI);

3.通过类名获取(IE 8不兼容)

语法:

        document.getElementsByClassName("类名") : 获取整个文档中对应类名的标签

        父元素.getElementsByClassName("类名") : 获取对应父元素中对应类名的标签    

//通过类名获取元素:IE8-不兼容
var LI = document.getElementsByClassName("box");
LI[0].onclick = function(){
    alert("浮生");
}

<注意>

        通过class和标签获取的都是元素集合,不管是几个元素都不能直接使用,必须通过下标获取到具体的元素进行操作==

二、添加事件

1.事件

        添加在标签上,可以被浏览器监听到的一些行为

2.语法

        标签.事件 = function(){

                事件触发时执行 的代码

                }

3.鼠标事件

  • onclick:点击
  • onmouseover/onmouseenter:鼠标移入(悬停)
  • onmoueout/onmouseleave:鼠标移出
  • onmousemove:鼠标移动
  • onmouseup:鼠标抬起
  • onmousedown:鼠标按下
  • ondblclick : 双击
  • oncontextmenu:右击
//添加事件  标签.事件名 = function(){ 事件发生时执行的操作 }
Div.onclick = function(){
    console.log("pink");
}

//onmouseover:鼠标移入
Div.onmouseover = function(){
    console.log("鼠标移入");
}

三、JavaScript操作标签

<div id=‘box’ class='box'>内容</div>
样式:height width

1.操作标签内容

1.1标签内容

        开始标签和结束标签中间的都是标签内容

1.2操作表单元素内容

  • 获取内容: var 变量 = 表单元素.value
  • 设置内容: 标签.value = "值"
//给button添加点击事件
Btns[0].onclick = function(){
//获取输入框的值  :var 变量 = 表单元素.value
    var v = Inp.value;
    console.log(v);
}
//设置
Btn[1].onclick = function(){
// 设置内容: 标签.value = "值"
    Inp.value = "hello world";
}

//所有的表单元素都是  标签.value
var v = Sel.value;
console.log(v);

1.3操作闭合标签内容

  • 获取:var 变量 = 标签.innerHTML / 标签.innerText
  • 设置:标签.innerHTML / 标签.innerText = “值”
  • innerHTML和innerText

        都是操作闭合标签内容,都会覆盖原有的内容         innerHTML能识别标签,innerText不能识别标签


/* 
  获取:var 变量 = 标签.innerHTML  /  标签.innerText
  设置:标签.innerHTM  /  标签.innerText = “值”

  innerHTML:识别标签,覆盖原有的内容
  innerText:只操作文本不识别标签,覆盖原有的内容
*/
//1.获取元素
var Div = document.getElementsByTagName("div")[0];

//2.获取标签内容
var html = Div.innerHTML;
console.log(html); //  <p>代码之难,难于上青天</p>
var text = Div.innerText;
console.log(text); // 代码之难,难于上青天

//3.设置标签内容,覆盖原有内容
//Div.innerHTML = "<p>蚕丛及鱼凫,开国何茫然!</p>";
//Div.innerText = "<p>蚕丛及鱼凫,开国何茫然!</p>";

//4.追加    之前的 + 现在的
//Div.innerHTML = Div.innerHTML + "<p>蚕丛及鱼凫,开国何茫然!</p>";
Div.innerHTML += "<p>蚕丛及鱼凫,开国何茫然!</p>";

2.操作标签属性

        <div id class title > 开始标签中的属性

  • 获取: var 变量 = 标签.属性名
  • 设置:标签.属性名 = 属性值
  • 特殊:class是关键字,不能直接使用,class---className
//1.获取元素
var Div = document.getElementsByTagName("div")[0];

//2.获取 var 变量 = 标签.属性名
var s = Div.title;
console.log(s);

//3.设置 标签.属性名 = 属性值
Div.id = "haha";

//4.设置class
Div.className = "curl";

3.操作标签样式

        写在style标签中,width,height,background

3.1设置

        标签.style.属性名 = 值

3.2特殊

        js中不允许出现-,要使用驼峰标识

//2.设置元素样式 : 标签.style.属性名 = 值  ,js操作标签样式都是行间
//width:200,height:200,background:green
Div.style.width = "200px";
Div.style.height = "200px";
Div.style.background = "yellow";

//特殊:js中不允许出现-,要使用驼峰标识
Div.style.fontSize = "20px";

3.3cssText

//获取元素
var Div = document.getElementsByTagName("div")[0];

//标签.style.cssText = "css样式"
// Div.style.cssText = "width:200px;height:200px;background:green";

//cssText重写style属性
// Div.style.cssText = "width:200px;background:green";
Div.style.width = "200px";
Div.style.background = "green";