JavaScript的Event对象用来描述JavaScript事件,Event代表事件状态,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮状态。一旦事件发生,便会生成Event对象。主要属性和方法:
- type:事件的类型,就是HTML标签属性中,没有on前缀之后的字符串,例如Click就代表点击事件;
- srcElement:事件源,就是发生事件的元素。比如是事件发生的源头,也就是该事件的srcElement(非IE中用target);
- button:声明了被按下的鼠标键,是一个整数。0代表没有案件,1代表鼠标左键,2代表鼠标右键,4代表鼠标的中间件,如果按下了多个鼠标键,就把这些值加起来;
- clientX/cleintY:是指事件发生的时候,鼠标的横、纵坐标,返回的是整数,它们的值是相对于包容窗口的左上角生成的;
- offsetX/offsetY:鼠标指针相对于源元素位置,可确定单击Image对象的哪个像素;
- altKey、ctrlKey、shiftKey:分别指鼠标事件发生的时候,是否同时按住了Alt、Ctrl或者Shift键,返回一个布尔值;
- keyCode:返回keydown和keyup事件发生的时候,按键的代码以及keypress事件的Unicode字符。比如event.keyCode=13代表按下了Enter键;
- fromElement、toElement:前者是指mouseover事件移动过的文档元素,后者是指mouseout事件中鼠标移动到的文档元素;
- cancelBubble:一个布尔值,把它设置为true时,将停止事件进一步起到包容层次的元素,它用于监测是否接受上层元素的事件控制。true代表不被上层元素的事件控制,false代表允许被上层元素的事件控制;
- returnValue:一个布尔值属性,设置为false的时候可以阻止浏览器执行默认的事件动作;
- attachEvent() 和detachEvent()方法:为制定DOM对象事件类型注册多个事件处理函数的方法,它们有两个参数,第一个是事件类型,第二个是事件处理函数。在attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素。
JavaScript元素属性操作方法,包括获取属性,修改元素,删除属性
本篇记录JS元素属性的操作的方法。其中包含获取属性两个方法,修改属性两个方法,删除属性一个方法
获取属性
element.属性
该方法通常获取自带属性,例如src href id title alt 等属性
<body>
<div id="demo" ></div>
<script>
var div = document.querySelector('div');
// 获取元素的属性值
// element.属性
console.log(div.id);
</script>
</body>
element.getAttribute(‘属性’)
该方法通常获取自定义属性。
<body>
<div id="demo" index="1" ></div>
<script>
var div = document.querySelector('div');
// 获取元素的属性值
// element.getAttribute('属性') get得到获取 attribute 属性的意思 我们程序员自己添加的属性我们称为自定义属性 index
console.log(div.getAttribute('index'));
</script>
</body>
修改属性
element.属性=‘值’
该方法通常用来修改自带属性,例如src href id title alt 等属性。一般采用element.属性进行修改
以src为例来记录元素属性修改的方法。
具体代码如下所示
<body>
<button id="Revin1">Revin1</button>
<button id="Revin2">Revin2</button> <br>
< img src="images/Revin1.jpg" alt="" title="Revin1">
<script>
// 修改元素属性 src
// 1. 获取元素
var Revin1 = document.getElementById('Revin1');
var Revin2 = document.getElementById('Revin2');
var img = document.querySelector('img');
// 2. 注册事件 处理程序
Revin2.onclick = function() {
img.src = 'images/Revin2.jpg';
img.title = 'Revin2';
}
Revin1.onclick = function() {
img.src = 'images/Revin1.jpg';
img.title = 'Revin1';
}
</script>
</body>
element.setAttribute(‘属性’, ‘值’)
该方法通常针对自定义属性的修改,例如下面例子中的index就是自定义的属性,可以通过该方法进行属性修改
具体实现如下
<body>
<button id="Revin1" index="1">Revin1</button>
<button id="Revin2" index="2">Revin2</button> <br>
<script>
// 1. 获取元素
var Revin1 = document.getElementById('Revin1');
var Revin2 = document.getElementById('Revin2');
// 2. 注册事件 处理程序
Revin2.onclick = function() {
Revin1.setAttribute('index', 3);
console.log(Revin1.getAttribute('index'));
}
Revin1.onclick = function() {
Revin2.setAttribute('index', 4);
console.log(Revin2.getAttribute('index'));
}
</script>
</body>
运行结果如下:
删除属性
removeAttribute(属性)
删除元素的属性,自带属性与自定义属性均可删除
<body>
<div id="demo" index="1" class="nav"></div>
<script>
var div = document.querySelector('div');
console.log(div.id);
console.log(div.index);
console.log(div);
// 移除属性 removeAttribute(属性)
div.removeAttribute('index');
div.removeAttribute('id');
console.log(div.id);
console.log(div.index);
console.log(div);
</script>
</body>
运行结果如下: