学习js

js对象
document location history 内置对象
一、document 是html标签 样式变化 数据显示之类的
DOM(document object model)
1.先获取元素
如何获取dom(document object model)的元素
获取方式:首先在<body>中有一个按钮
<button id=“btn” class=“btnlist” name=“btninfor”>按钮</button>
通过类名称获取:var btn=document.getElementsByClassName(“btnlist”);
console.log(btn);返回集合 htmlcollection 用法和数组一致
console.log(btn[0]);可以拿到当前对象
通过元素名称获取: var btn1=document.getElementByName(“btninfor”)
console.log(btn1); 返回的是节点类型
console.log(btn1[0]);可以拿到当前对象
通过元素id 名称获取:var btn2=document.getElementById(“btn”);
console.log(btn2);**可以直接获取当前对象;(返回的是单个对象 可以直接使用)
通过标记名称获取:(通过标签的名称):var btn3=document.getElementByTagName(“button”);
console.log(btn3[0]);
var btn4=document.querySelector(".bynlist");
console.log(btn4);//返回的是集合
var btn5=document.querySelectorAll("#btn");
console.log(btn5);
获取body 元素 console.log(document.body);

2.操作DOM元素
如何操作dom元素 操作dom元素的属性和行为(事件)
首先在<body>中写一个<button>
《1》操作属性: 获取它 var btn=document.getElementByTagName(“button”);
修改属性的操作:btn[0].style.background=“red”;
btn[0].style.width=“200px”;
**js直接操作的元素属性都是行内的;
获取对象的属性(行内样式):console.log(btn[0].style.width);
js获取非行内样式(不能用上述方法)
可以用:console.log(Window.getComputedStyle(btn[0]).height);
《2》操作dom元素的事件
dom事件有:(事件前缀都带on)
键盘事件:onkeydown键盘按下;onkeyup键盘抬起;onkeypress按键事件;
表单事件:onfocus获焦事件; onblur失去焦点;
鼠标事件:onclick鼠标单击事件;ondbclick鼠标双击事件;onmouseleave鼠标水平离开事件
onmouseout鼠标垂直离开(三维坐标);onmousemove鼠标移动事件;onmouseheel鼠标滚轮;
onmouseenter鼠标进入事件;onmouseover鼠标悬停事件;
浏览器事件(Window事件)onload加载完成事件;onresize浏览器窗口变化事件
onerror报错事件;onscroll滑动条事件;
触屏事件:touchstart开始触屏;touchmove触屏移动事件;touchend触屏结束;
如何给dom元素添加事件:
(1)常规添加 直接在标签上添加事件;比如:<button οnclick=“里面写函数的调用”>按钮</button>
(2)动态给dom元素添加事件 :<button id=“btn”>按钮</button>
首先先获取元素:var btn=document.getElementById(“btn”);
btn.οnclick=function(){
console.log(1);
}
或者:btn.οnclick=showinfo;此时不能添加小括号
function showinfo(){
console.log(1);
}
(3) 事件的监听按钮</button>
var btn2=document.getElementById(“btn2”);
btn2.addEventListener(“click”,function(){
console.log(2);
});

事件的执行参数:
//鼠标点击事件
<button id=“btn”>按钮</button>
var btn=document.getElememtById(“btn”);
btn.οnclick=function(e){//e也可以写成 var e=window.event;
console.log(e);//e event 事件的执行参数
var target=e.target||e.srcElement; //当前点击的目标元素
console.log(target);//目标元素;
};
//键盘事件
document.body.οnkeypress=function( ){
var e=window.event;
console.log(e.keyCode);
}
//鼠标移动事件
document.body.οnmοusemοve=function(e){
var pageX=e.pageX||e.clientX;
var pageY=e.pageY||e.clientY;
console.log(pageX,pageY);
}
JS里面的this 可以指代当前事件的执行对象
函数里面的this指代Window里的对象
冒泡
在js里面要尽量避免事件的冒泡 只需要执行子容器 只有onclick会出现冒泡
如何处理事件的冒泡:在子容器中写
e.stopPropagation();//阻止事件冒泡
e.preventDefault();//阻止事件的默认行为
return false;//阻止冒泡
但是在js中只有第一个可以阻止事件冒泡;

事件的委托:父容器的事件委托给子容器去执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值