JavaScript——DOM的高级应用一

来源:互联网 发布:淘宝店铺保证金多少 编辑:程序博客网 时间:2024/04/30 17:32

表格应用、表单应用

表格应用
获取

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title><script type="text/javascript">    window.onload = function(){        var oTab = document.getElementById('tab1');        alert(oTab.tBodies[0].rows[1].cells[1].innerHTML);    }</script></head><body>    <table id="tab1" border="1" width="500";>        <thead>            <td>ID</td>            <td>姓名</td>            <td>年龄</td>        </thead>        <tbody>            <tr>                <td>1</td>                <td></td>                <td>20</td>            </tr>            <tr>                <td>2</td>                <td></td>                <td>21</td>            </tr>            <tr>                <td>3</td>                <td></td>                <td>22</td>            </tr>            <tr>                <td>4</td>                <td></td>                <td>23</td>            </tr>        </tbody>    </table></body></html>

结果可以直接获取“钱”;
alert(oTab.getElementsByTagName('tbody')[0].getElementsByTagName('tr')[1].getElementsByTagName('td')[1].innerHTML);alert(oTab.tBodies[0].rows[1].cells[1].innerHTML);的使用方法一样

getElementsByTagName(‘tbody’) -> tBodies getElementsByTagName(‘tr’) -> rows getElementsByTagName(‘td’) -> cells
直接元素:
getElementsByTagName(‘thead’) -> tHead getElementsByTagName(‘tfoot’) -> tFoot

隔行变色

window.onload = function(){        var oTab = document.getElementById('tab1');        var oldColor = '';        for (var i = 0; i < oTab.tBodies[0].rows.length; i++) {            oTab.tBodies[0].rows[i].onmouseover = function(){                oldColor = this.style.background;                this.style.background = 'green';            }            oTab.tBodies[0].rows[i].onmouseout = function(){                this.style.background = oldColor;            }            if (i % 2) {                oTab.tBodies[0].rows[i].style.background = 'red';            } else {                oTab.tBodies[0].rows[i].style.background = '';            }        };    }

先定义一个空变量,将原来的颜色存入其中;
当鼠标移入的时候会变成指定颜色,当鼠标移出的时候会变回原来的颜色;

添加删除行

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title><script type="text/javascript">    window.onload = function(){        var oTab = document.getElementById('tab1');        var oBtn = document.getElementById('btn1');        var oName = document.getElementById('name');        var oAge = document.getElementById('age');        var id = oTab.tBodies[0].rows.length + 1;        oBtn.onclick = function (){            var oTr = document.createElement('tr');            var oTd = document.createElement('td');            oTd.innerHTML = id ++;            oTr.appendChild(oTd);            var oTd = document.createElement('td');            oTd.innerHTML = oName.value;            oTr.appendChild(oTd);            var oTd = document.createElement('td');            oTd.innerHTML = oAge.value;            oTr.appendChild(oTd);            var oTd = document.createElement('td');            oTd.innerHTML = '<a href = "javascript:;">删除</a>';            oTr.appendChild(oTd);            oTd.getElementsByTagName('a')[0].onclick = function(){                oTab.tBodies[0].removeChild(this.parentNode.parentNode)            }            oTab.tBodies[0].appendChild(oTr);        }    }</script></head><body>    姓名:<input id="name" type="text" />    年龄:<input id="age" type="text" />    <input id="btn1" type="button" value="添加" />    <table id="tab1" border="1" width="500";>        <thead>            <td>ID</td>            <td>姓名</td>            <td>年龄</td>            <td>操作</td>        </thead>        <tbody>            <tr>                <td>1</td>                <td></td>                <td>20</td>                <td></td>            </tr>            <tr>                <td>2</td>                <td></td>                <td>21</td>                <td></td>            </tr>            <tr>                <td>3</td>                <td></td>                <td>22</td>                <td></td>            </tr>            <tr>                <td>4</td>                <td></td>                <td>23</td>                <td></td>            </tr>        </tbody>    </table></body></html>

删除之后ID不会重复

搜索
toLowerCase()搜索时可以忽略英文大小写

var str = 'asdfg';alert(str.search('df'));

找到并返回字符串的位置,上图即是返回2,如果没有找到,那么会返回一个-1

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title><script type="text/javascript">    window.onload = function(){        var oTab = document.getElementById('tab1');        var oTxt = document.getElementById('name');        var oBtn = document.getElementById('btn1');        oBtn.onclick = function(){            for (var i = 0; i < oTab.tBodies[0].rows.length; i++) {                var sTab = oTab.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();                var sTxt = oTxt.value.toLowerCase();                if(sTab.search( sTxt)!=-1){                    oTab.tBodies[0].rows[i].style.background = 'yellow';                } else {                    oTab.tBodies[0].rows[i].style.background = '';                }            };        }    }</script></head><body>    姓名:<input id="name" type="text" />    <input id="btn1" type="button" value="搜索" />    <table id="tab1" border="1" width="500";>        <thead>            <td>ID</td>            <td>姓名</td>            <td>年龄</td>            <td>操作</td>        </thead>        <tbody>            <tr>                <td>1</td>                <td></td>                <td>20</td>                <td></td>            </tr>            <tr>                <td>2</td>                <td></td>                <td>21</td>                <td></td>            </tr>            <tr>                <td>3</td>                <td></td>                <td>22</td>                <td></td>            </tr>            <tr>                <td>4</td>                <td></td>                <td>23</td>                <td></td>            </tr>        </tbody>    </table></body></html>
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title><script type="text/javascript">    window.onload = function(){        var oTab = document.getElementById('tab1');        var oTxt = document.getElementById('name');        var oBtn = document.getElementById('btn1');        oBtn.onclick = function(){            for (var i = 0; i < oTab.tBodies[0].rows.length; i++) {                var sTab = oTab.tBodies[0].rows[i].cells[1].innerHTML.toLowerCase();                var sTxt = oTxt.value.toLowerCase();                var arr = sTxt.split(' ');                oTab.tBodies[0].rows[i].style.background = '';                for (var j = 0; j < arr.length; j++) {                    if(sTab.search(arr[j])!=-1){                    oTab.tBodies[0].rows[i].style.background = 'yellow';                    }                 }            }        }    }</script></head><body>    姓名:<input id="name" type="text" />    <input id="btn1" type="button" value="搜索" />    <table id="tab1" border="1" width="500";>        <thead>            <td>ID</td>            <td>姓名</td>            <td>年龄</td>            <td>操作</td>        </thead>        <tbody>            <tr>                <td>1</td>                <td></td>                <td>20</td>                <td></td>            </tr>            <tr>                <td>2</td>                <td></td>                <td>21</td>                <td></td>            </tr>            <tr>                <td>3</td>                <td></td>                <td>22</td>                <td></td>            </tr>            <tr>                <td>4</td>                <td></td>                <td>23</td>                <td></td>            </tr>        </tbody>    </table></body></html>

split将数组分开
其中包含大小写模糊,等各类模糊搜索
筛选功能就是将background改成display

排序
appendChild:先把元素在原有的父级上删除,然后在添加到新的父级

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title><style type="text/css">    #ul1 {        background: green;    }    #ul2 {        background: yellow;    }</style><script type="text/javascript">    window.onload = function(){        var oUl1 = document.getElementById('ul1');        var oUl2 = document.getElementById('ul2');        var oBtn = document.getElementById('btn1');        oBtn.onclick = function (){            var oLi = oUl1.children[0];            oUl2.appendChild(oLi);        }    }</script></head><body>    <ul id="ul1">        <li>1</li>        <li>2</li>        <li>3</li>        <li>4</li>        <li>5</li>    </ul>    <input id="btn1" type="button" value="移动">    <ul id="ul2"></ul></body></html>

当点击按钮时,原有的列表内容会一条一条删除,新列表会一条一条添加

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title><style type="text/css">    #ul1 {        background: green;    }    #ul2 {        background: yellow;    }</style><script type="text/javascript">    window.onload = function(){        var oUl1 = document.getElementById('ul1');        var oBtn = document.getElementById('btn1');        oBtn.onclick = function (){            var oLi = oUl1.children[0];            oUl1.appendChild(oLi);        }    }</script></head><body>    <input id="btn1" type="button" value="移动">    <ul id="ul1">        <li>1</li>        <li>2</li>        <li>3</li>        <li>4</li>        <li>5</li>    </ul></body></html>

当点击按钮的时候,会不断的往后排序
数字排序:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title><style type="text/css">    #ul1 {        background: green;    }    #ul2 {        background: yellow;    }</style><script type="text/javascript">    window.onload = function(){        var oUl1 = document.getElementById('ul1');        var oBtn = document.getElementById('btn1');        oBtn.onclick = function (){            var aLi = oUl1.getElementsByTagName('li');            var arr = [];            for (var i = 0; i < aLi.length; i++) {                arr[i] = aLi[i]            }            arr.sort(function(li1,li2){                var n1 = parseInt(li1.innerHTML);                var n2 = parseInt(li2.innerHTML);                return n1 - n2;            });            //alert(arr[0].innerHTML);            for (var i = 0; i < arr.length; i++) {                oUl1.appendChild(arr[i]);            };        }    }</script></head><body>    <input id="btn1" type="button" value="移动">    <ul id="ul1">        <li>12</li>        <li>98</li>        <li>4</li>        <li>65</li>        <li>10</li>    </ul></body></html>

例子:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title><script type="text/javascript">    window.onload = function(){        var oTab = document.getElementById('tab1');        var oBtn = document.getElementById('btn1');        oBtn.onclick = function(){            var arr = [];            for (var i = 0; i < oTab.tBodies[0].rows.length; i++) {                arr[i] = oTab.tBodies[0].rows[i]            };            arr.sort(function(tr1,tr2){                var n1 = tr1.cells[0].innerHTML;                var n2 = tr2.cells[0].innerHTML;                return n1 - n2;            });            for (var i = 0; i < arr.length; i++) {                oTab.tBodies[0].appendChild(arr[i]);            };        }    }</script></head><body>    <input id="btn1" type="button" value="排序" />    <table id="tab1" border="1" width="500";>        <thead>            <td>ID</td>            <td>姓名</td>            <td>年龄</td>            <td>操作</td>        </thead>        <tbody>            <tr>                <td>1</td>                <td></td>                <td>20</td>                <td></td>            </tr>            <tr>                <td>6</td>                <td></td>                <td>21</td>                <td></td>            </tr>            <tr>                <td>3</td>                <td></td>                <td>22</td>                <td></td>            </tr>            <tr>                <td>5</td>                <td></td>                <td>21</td>                <td></td>            </tr>            <tr>                <td>4</td>                <td></td>                <td>23</td>                <td></td>            </tr>            <tr>                <td>2</td>                <td></td>                <td>21</td>                <td></td>            </tr>        </tbody>    </table></body></html>

表单应用
向服务器提交数据
action -> 提交到哪里(网址)
表单事件
onsubmit -> 加事件,提交的时候发生
onreset -> 加事件,重置的时候发生
表单内容校验
组织用户输入非法字符
输入时、失去焦点时验证
提交时检查
后台数据检查

1 0
原创粉丝点击