DOM属性的增删改、属性的其他操作及DOM事件

一、BOM属性的增删改

Ⅰ、获取标签document.getElementById()

Ⅱ、获取属性值

方法一:document.write(inObj.value);

方法二:document.write(inObj.getAttribute(“value”));

Ⅲ、设置 属性值

方法一:inObj.value=”hello”;

方法二:inObj.setAttribute(“value”, “Django”);

Ⅳ、添加属性document.createAttribute(“class”);

Ⅴ、删除属性inObj.removeAttribute(“name”);

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>DOM 属性相关操作</title>

</head>

<body>

<input type="text" name="aaa" id="inputid" value="请输入:">

<script>

    // 1、获取标签

    var inObj = document.getElementById("inputid");

    document.write("<br/>");

    // 2、获取属性值 方法一

    document.write(inObj.value);

    document.write("<br/>");

    // 获取属性值 方法二

    document.write(inObj.getAttribute("value"));

    document.write("<br/>");

    // 3、设置属性值

    // 方法一

    // inObj.value="hello";

    // document.write(inObj.value);

    // document.write("<br/>");

    // 方法二

    // inObj.setAttribute("value", "Django");

    // document.write(inObj.value);

    //document.write("<br/>");

    // 4、添加属性

    // 创建属性节点

    var attrObj = document.createAttribute("class");

    // 与input标签建立联系

    //inObj.appendChild(attrObj);

    document.write("<br/>");

    // 5、删除属性

    document.write(inObj.getAttribute("name"));

    inObj.removeAttribute("name");

    document.write("<br/>");

    document.write(inObj.getAttribute("name"));

</script>

</body>

</html>

二、DOM属性的其他常用操作

Ⅰ、标签节点

nodeName返回标签名,nodeType返回整型1,nodeValue返回null

Ⅱ、属性节点

nodeName返回属性名,nodeType返回整型2,nodeValue返回属性值

Ⅲ、文本节点

nodeName返回#text,nodeType返回整型3,nodeValue返回文本本身

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>DMO 属性操作</title>

</head>

<body>

<span id="span_id"> Hello Django </span>

<br/>

<script>

/*

元素节点 /属性节点 /文本节点

    nodeName: 返回标签名 /属性名 /#text

    nodeType: 1 /2 /3

    nodeValue: null /属性值 /文本本身

     */

    // 1、标签节点

    var eleObj = document.getElementById("span_id");

    document.write(eleObj.nodeName);

    document.write("<br/>");

    document.write(eleObj.nodeType);

    document.write("<br/>");

    document.write(eleObj.nodeValue);

    document.write("<hr/>");

    // 2、属性节点

    var attrObj = eleObj.getAttributeNode("id");

    document.write(attrObj.nodeName);

    document.write("<br/>");

    document.write(attrObj.nodeType);

    document.write("<br/>");

    document.write(attrObj.nodeValue);

    document.write("<hr/>");

    // 3、文本节点

    var textObj = eleObj.firstChild;

    document.write(textObj.nodeName);

    document.write("<br/>");

    document.write(textObj.nodeType);

    document.write("<br/>");

    document.write(textObj.nodeValue);

</script>

</body>

</html>

三、DOM父节点与子节点

Ⅰ、已知子节点获取父节点

Ⅱ、已知父节点获取子节点

Ⅲ、获取全部子节点

Ⅳ、获取子节点的长度

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>父子节点</title>

</head>

<body>

<span>Hello</span>

<ul>

    <li id="li1">111</li>

    <li id="li2">222</li>

    <li id="li3">333</li>

    <li id="li4">444</li>

</ul>

<span>World</span>

<script>

    // 1、已知子节点获取父节点

    var liEle = document.getElementById("li1");

    var ulEle = liEle.parentNode;

    // 2、已知子节点获取父节点

    var ulObj = document.getElementsByTagName("ul")[0];

    document.write(ulObj.firstChild);

    document.write(ulObj.lastChild);

    // 获取全部子节点

    var childObj = ulObj.childNodes;

    document.write(childObj);

    // 获取长度,5个换行加4个子节点

    document.write(childObj.length);

</script>

</body>

</html>

四、InnerHTML属性

Ⅰ、获取文本内容

Ⅱ、设置HTML标签

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>innerHTML属性</title>

    <style>

        #box {

            width:200px;

            height:200px;

            background-color: #3875d7;

        }

    </style>

</head>

<body>

<span id="span_id"> 123 </span>

<div id="box"> 456 </div>

<!--<table border="1" cellspacing="1" bgcolor="red" width="100px" height="100px"><tr><td>1</td></tr><tr><td>2</td></tr><tr><td>3</td></tr></table>-->

<script>

    // 获取span标签对象

    var spanObj = document.getElementById("span_id");

    // 获取span的文本内容

    document.write(spanObj.innerHTML);

    // 设置 HTML 标签

    var divObj = document.getElementById("box");

    divObj.innerHTML = '<table border="1" cellspacing="1" bgcolor="red" width="100px" height="100px"><tr><td>1</td></tr><tr><td>2</td></tr><tr><td>3</td></tr></table>\n'

</script>

</body>

</html>

五、DOM事件

  1. 内联模式

将事件作为标签使用,可以识别JS中的代码和函数,不能做到JS和HTML标签分离

  1. 脚本模式

将事件作为属性使用,匿名函数,HTML标签与JS分离

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>DOM 事件</title>

</head>

<body>

<input type="button" οnclick="func()" value="内联模式函数按钮">

<input type="button" οnclick="alert('123')" value="内联模式alert按钮">

<input type="button" id="input_1" value="脚本模式按钮1">

<input type="button" id="input_2" value="脚本模式按钮2">

<script>

    // 1、内联模式

    // 将事件作为标签的属性使用

    // 可识别JS中的代码和函数,不能做到JS和HTML标签分离

    function func(){

        document.write("hello");

    }

    // 2、 脚本模式

    // 将事件作为属性来使用,匿名函数

    // 获取input标签

    // HTML标签和JS分离

    var input1 = document.getElementById("input_1");

    // 给input标签添加单击事件

    input1.onclick = function (){

        document.write("input_1");

    }

    

</script>

</body>

</html>

六、鼠标事件

①单击事件 onclick

②双击事件ondblclick

③悬浮事件 onmouseover

④失去焦点,移除鼠标 onmouseout

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>鼠标事件</title>

    <style>

        #box{

            width:100px;

            height:100px;

            background-color: rebeccapurple;

        }

    </style>

</head>

<body>

<div id="box">  </div>

<script>

    // 获取元素

    var divObj = document.getElementById("box");

    // 添加事件

    // 单击事件

    divObj.onclick = function (){

        alert("单机事件");

    }

    // 双击事件

    divObj.ondblclick = function (){

        alert("双击事件");

    }

    // 悬浮事件

    divObj.onmouseover = function (){

        alert("悬浮事件");

    }

    // 失去焦点,把鼠标移除

    divObj.onmouseout = function (){

        alert("失去焦点");

    }

</script>

</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值