JavaScript学习-Attribute对象与事件

 
Attr 对象
在 HTML DOM 中,Attr 对象表示 HTML 属性。HTML 属性始终属于 HTML 元素。在 W3C DOM Core 中,
Attr (attribute) 对象从 Node 对象继承所有属性和方法。在 DOM 4 中,Attr 对象不再从 Node 继承。为了保证未来的代码安全,
您应该避免在属性对象上使用节点对象的属性和方法。

属性 / 方法    描述
attr.isId  如果属性是 id 类型,则返回 true,否则返回 false。
attr.name  返回属性的名称。
attr.value 设置或返回属性的值。
attr.specified 如果已指定属性,则返回 true,否则返回 false。
nodemap.getNamedItem() 从 NamedNodeMap 返回指定的属性节点。
nodemap.item() 返回 NamedNodeMap 中位于指定下标的节点。
nodemap.length 返回 NamedNodeMap 中的节点数。
nodemap.removeNamedItem()  移除指定的属性节点。
nodemap.setNamedItem() 设置指定的属性节点(通过名称)。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>javaScript学习-Attribute对象</title>
</head>
<body>
    <div>
        <input type="button" value="OK">
        <button οnclick="remove()">移除input</button>
        <button οnclick="setInputType()">移除input后再添加</button>
        <p id="demo">点击</p>
        <button class="btnclass" id="btn" οnclick="myFunction()">试一下</button>
        <!--isId 属性返回 true,如果属性是 ID 类型,返回返回 false。-->
        <script>
            function myFunction(){
                var btn=document.getElementsByTagName("button")[0];
                console.log("btn:"+btn);
                console.log("元素属性节点的无序集合:"+btn.attributes);
                console.log("length:"+btn.attributes.length);
                console.log("第一个name:"+btn.attributes[0].name);
                console.log("第一个value:"+btn.attributes[0].value);
                console.log("第二个value:"+btn.attributes[1].name);
                console.log("第二个value:"+btn.attributes[1].value);

                //specified 属性返回 true,如果已规定某个属性. 如果已创建该属性但尚未添加到元素中,也会返回 true。否则返回 false。
                var specified_result = btn.getAttributeNode("class").specified;
                console.log(specified_result);

                //getNamedItem() 方法从 namedNodeMap 中返回具有指定名称的属性节点。
                var node_result = btn.attributes.getNamedItem('onclick').textContent;
                console.log("getNamedItem:"+node_result);

                //getNamedItem() 方法从 namedNodeMap 中返回具有指定名称的属性节点。
                var node_result3 = btn.attributes.getNamedItem('onclick').textContent;
                console.log("getNamedItem:"+node_result3);

                //item() 方法以 Node 对象返回 namedNodeMap 中位于指定索引的节点。
                var nodeName_result2 = btn.attributes.item(0).nodeName;
                console.log("getNamedItem:"+nodeName_result2);
            }
            function remove() {
                //removeNamedItem() 方法删除 namedNodeMap 中带有指定名称的节点。
                var input = document.getElementsByTagName("INPUT")[0];
                input.attributes.removeNamedItem("type");
            }
            function setInputType() {
                //setNamedItem() 方法向 nodeMap 添加指定的节点。如果此节点已存在,则将替换该节点,并返回被替换的节点,否则返回值是 null。
                var input = document.getElementsByTagName("INPUT")[0];
                var typ = document.createAttribute("type");
                typ.nodeValue = "button";
                input.attributes.setNamedItem(typ);
            }
        </script>
    </div>

    <div></div>
</body>
</html>


Event 对象
Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
事件通常与函数结合使用,函数不会在事件发生前被执行!

事件句柄 (Event Handlers)
HTML 4.0 的新特性之一是能够使 HTML 事件触发浏览器中的行为,比如当用户点击某个 HTML 元素时启动一段 JavaScript。
下面是一个属性列表,可将之插入 HTML 标签以定义事件的行为。

属性             此事件发生在何时...
onabort                图像的加载被中断。
onblur             元素失去焦点。
onchange           域的内容被改变。
onclick                当用户点击某个对象时调用的事件句柄。
ondblclick         当用户双击某个对象时调用的事件句柄。
onerror                在加载文档或图像时发生错误。
onfocus                元素获得焦点。
onkeydown          某个键盘按键被按下。
onkeypress         某个键盘按键被按下并松开。
onkeyup                某个键盘按键被松开。
onload             一张页面或一幅图像完成加载。
onmousedown            鼠标按钮被按下。
onmousemove            鼠标被移动。
onmouseout         鼠标从某元素移开。
onmouseover            鼠标移到某元素之上。
onmouseup          鼠标按键被松开。
onreset                重置按钮被点击。
onresize           窗口或框架被重新调整大小。
onselect           文本被选中。
onsubmit           确认按钮被点击。
onunload           用户退出页面。


鼠标 / 键盘属性
属性             描述
altKey             返回当事件被触发时,"ALT" 是否被按下。
button             返回当事件被触发时,哪个鼠标按钮被点击。
clientX                返回当事件被触发时,鼠标指针的水平坐标。
clientY                返回当事件被触发时,鼠标指针的垂直坐标。
ctrlKey                返回当事件被触发时,"CTRL" 键是否被按下。
metaKey                返回当事件被触发时,"meta" 键是否被按下。
relatedTarget      返回与事件的目标节点相关的节点。
screenX                返回当某个事件被触发时,鼠标指针的水平坐标。
screenY                返回当某个事件被触发时,鼠标指针的垂直坐标。
shiftKey           返回当事件被触发时,"SHIFT" 键是否被按下。


IE 属性
除了上面的鼠标/事件属性,IE 浏览器还支持下面的属性:
属性             描述
cancelBubble       如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。
fromElement            对于 mouseover 和 mouseout 事件,fromElement 引用移出鼠标的元素。
keyCode                对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符码。
                    对于 keydown 和 keyup 事件,它指定了被敲击的键的虚拟键盘码。虚拟键盘码可能和使用的键盘的布局相关。
offsetX,offsetY        发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标。
returnValue            如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,可以取消发生事件的源元素的默认动作。
srcElement         对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。
toElement          对于 mouseover 和 mouseout 事件,该属性引用移入鼠标的元素。
                    x,y    事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素。

标准 Event 属性
下面列出了 2 级 DOM 事件标准定义的属性。
属性             描述
bubbles                返回布尔值,指示事件是否是起泡事件类型。
cancelable         返回布尔值,指示事件是否可拥可取消的默认动作。
currentTarget      返回其事件监听器触发该事件的元素。
eventPhase         返回事件传播的当前阶段。
target             返回触发此事件的元素(事件的目标节点)。
timeStamp          返回事件生成的日期和时间。
type               返回当前 Event 对象表示的事件的名称。


标准 Event 方法
下面列出了 2 级 DOM 事件标准定义的方法。IE 的事件模型不支持这些方法:
方法             描述
initEvent()            初始化新创建的 Event 对象的属性。
preventDefault()   通知浏览器不要执行与事件关联的默认动作。
stopPropagation()  不再派发事件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值