DOM

2018-03-06  本文已影响0人  挥剑斩浮云

JS三大核心内容

DOM对象简介

DOM节点的概念

获取DOM中指定元素

DOM查询操作
01->以类名进行查询
语法:document.getElementsByName("表单元素name值");
举例:
<body>
    <input name="web" id="radio1" type="radio" value="HTML"/>
    <input name="web" id="radio2" type="radio" value="CSS"/>
    <input name="web" id="radio3" type="radio" value="JavaScript"/>
    <input name="web" id="radio4" type="radio" value="jQuery"/>
    <script type="text/javascript">
        alert(document.getElementsByName("web")[0].value);
    </script>
</body>
02->以id名进行查询
  语法:document.getElementById("元素id");
DOM元素查询时需注意的事项

innerHTML和innerText

修改和获取DOM节点内容

创建DOM节点

在JavaScript中,创建新节点都是先用document对象中的createElement()和createTextNode()这2种方法创建一个元素节点,然后再通过appendChild()、insertBefore()等方法把新元素节点插入现有的元素节点中去
语法:
var e = document.createElement("元素名");   //创建元素节点
var t = document.createTextNode("元素内容");    //创建文本节点
e.appendChild(t);   //把元素内容插入元素中去
创建复杂节点
<script type="text/javascript">
    var e = document.createElement("input");
    e.id = "submit";
    e.type = "button";
    e.value = "提交";
    document.body.appendChild(e);
</script>

节点的添加、替换、复制和删除操作

01->添加节点
语法:obj.appendChild(new)
说明:obj表示当前节点,new表示新节点
<head>
    <title></title>
    <script type="text/javascript">
    function insert() {
        var e = document.createElement("li");   //创建元素节点
        var str = document.getElementById("txt").value; //获取文本框的值
        var txt = document.createTextNode(str); //创建文本节点
        e.appendChild(txt); //插入文本节点li
        var list = document.getElementById("list"); //获取ul
        list.appendChild(e);    //插入文本节点
    }
    </script>
</head>

<body>
    <ul id="list">
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
    </ul>
    列项文本:
    <input id="txt" type="text" />
    <br />
    <input type="button" value="插入新项" onclick="insert()" />
</body>
语法:obj.insertBefore(new,ref)
说明:obj表示父节点;
new表示新的子节点;
ref指定一个节点,在这个节点前插入新的节点
<head>
    <title></title>
    <script type="text/javascript">
    function insert() {
        var e = document.createElement("li");   //创建元素节点
        var str = document.getElementById("txt").value; //获取文本框的值
        var txt = document.createTextNode(str); //创建文本节点
        e.appendChild(txt); //插入文本节点li
        var list = document.getElementById("list"); //获取ul
        list.insertBefore(e,list.firstChild);   //插入文本节点
    }
    </script>
</head>

<body>
    <ul id="list">
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
    </ul>
    列项文本:
    <input id="txt" type="text" />
    <br />
    <input type="button" value="插入新项" onclick="insert()" />
</body>
02->替换替换节点
语法:obj.replaceChild(new,old)
说明:obj,表示被替换节点的父节点;
new,表示替换后的新节点;
old,需要被替换的旧节点;
<head>
    <title></title>
    <script type="text/javascript">
    function replace() {
        //获取两个文本框的值
        var tag = document.getElementById("tag").value;
        var txt = document.getElementById("txt").value;
        //获取p元素
        var lvye = document.getElementById("lvye");
        //根据两个文本框的值创建新节点
        var e = document.createElement(tag);
        var t = document.createTextNode(txt);
        e.appendChild(t);
        document.body.replaceChild(e, lvye);
    }
    </script>
</head>

<body>
    <p id="lvye">绿叶学习网</p>
    <hr /> 输入标签:
    <input id="tag" type="text" />
    <br /> 输入文本:
    <input id="txt" type="text" />
    <br />
    <input type="button" value="替换" onclick="replace()" />
</body>
03->复制节点
语法:obj.cloneNode(bool)
说明:参数obj表示被复制的节点,而参数bool是一个布尔值,取值如下:
(1)1或true:表示复制节点本身以及复制该节点下的所有子节点;
(2)0或false:表示仅仅复制节点本身,不复制该节点下的子节点;
<head>
    <title></title>
    <script type="text/javascript">
    function add() {
        var e = document.getElementById("list");
        document.body.appendChild(e.cloneNode(1));//复制本身包括子
        document.body.appendChild(e.cloneNode(0));//复制本身不包括子
        
    }
    </script>
</head>

<body>
    <ul id="list">
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
        <li>jQuery</li>
        <li>ASP.NET</li>
    </ul>
    <input type="button" value="添加" onclick="add()" />
</body>
04->删除节点
语法:obj.removeChild(oldChild);
说明:参数obj表示当前节点,而参数oldChild表示需要当前节点内部的某个子节点
<head>
    <title></title>
    <script type="text/javascript">
    //定义删除函数
    function del() {
        var e = document.getElementById("list");
        //判断元素节点e是否有子节点
        if (e.hasChildNodes) {
            e.removeChild(e.lastChild); //删除e元素的最后一个子节点
        }
    }
    </script>
</head>

<body>
    <ul id="list">
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
        <li>jQuery</li>
        <li>ASP.NET</li>
    </ul>
    <input type="button" value="删除" onclick="del()" />
    </div>
</body>
<head>
    <title></title>
    <script type="text/javascript">
    function del() {
        var e = document.getElementById("list");
        document.body.removeChild(e);
    }
    </script>
</head>

<body>
    <ul id="list">
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
        <li>jQuery</li>
        <li>ASP.NET</li>
    </ul>
    <input type="button" value="删除" onclick="del()" />
</body>

DOM属性操作

节点指针

DOM节点的信息

01->nodeType节点类型的常数值

元素节点 Node.ELEMENT_NODE(1)
属性节点 Node.ATTRIBUTE_NODE(2)
文本节点 Node.TEXT_NODE(3)
CDATA节点 Node.CDATA_SECTION_NODE(4)
实体引用名称节点 Node.ENTRY_REFERENCE_NODE(5)
实体名称节点 Node.ENTITY_NODE(6)
处理指令节点 Node.PROCESSING_INSTRUCTION_NODE(7)
注释节点 Node.COMMENT_NODE(8)
文档节点 Node.DOCUMENT_NODE(9)
文档类型节点 Node.DOCUMENT_TYPE_NODE(10)
文档片段节点 Node.DOCUMENT_FRAGMENT_NODE(11)
DTD声明节点 Node.NOTATION_NODE(12)
02->nodeName 节点的名称
03->nodeValue 当前节点的值,格式为字符串

获取DOM元素的css样式

01->获取行间样式
02->获取非行间样式
上一篇 下一篇

猜你喜欢

热点阅读