zoukankan      html  css  js  c++  java
  • DOM操作

    一、DOM的含义

     
                 *     文档对象模型
                 *     DOM是关于创建,插入,修改,删除页面元素的标准
                 *     DOM赋予我们操作页面的能力
                 *     
                 *     页面的内容都是字符串,JS会把这些字符串转成DOM树,DOM树会把字符串转成节点,其实我们操作DOM的根本就是操作节点
    二、DMO节点
     
    1. <script>
    2. /*
    3. * attributes
    4. * 属性节点
    5. * 返回元素身上的所有属性节点,每个属性都会有一个自己对应的下标
    6. * 它有一个length属性,代表元素身上有多少个属性节点
    7. *
    8. * childNodes
    9. * 元素身上的第一层子节点,返回元素身上的所有子节点的集合(第一层)   
            1. 子节点包含 文本节点、元素节点、注释节点 
    10. *
    11. * nodeName
    12. * 节点的名称
    13. *
    14. * nodeType
    15. * 节点的类型
    16. * 返回的是一个数字
    17. *
    18. */
    19. window.onload=function(){
    20. var box=document.getElementById("box");
    21. var attr=box.attributes;//元素属性节点的集合
    22. console.log(attr);
    23. console.log(attr[0]);//id="box"
    24. var child=box.childNodes;//元素子节点的集合
    25. console.log(child);
    26. //元素节点(标签)
    27. console.log(box.nodeName);//DIV
    28. console.log(box.nodeType);//1
    29. //属性节点
    30. console.log(attr[0].nodeName);//id
    31. console.log(attr[0].nodeType);//2
    32. //文本节点
    33. console.log(child[0].nodeName);//#text
    34. console.log(child[0].nodeType);//3
    35. //注释节点
    36. console.log(child[3].nodeName);//#comment
    37. console.log(child[3].nodeType);//8
    38. //文档节点
    39. console.log(document.nodeName);//#document
    40. console.log(document.nodeType);//9
    41. }
    42. </script>
    43. <div id="box"class="color" style=" 100px;">
    44. <p><span></span></p>
    45. kaivon
    46. <!--这里是注释-->
    47. </div>
    三、tagName
     
                 *     节点名称,任何一个节点都有这个属性
                 * 
                 * tagName
                 *     标签名称(全大写)
                 *     只有元素节点才有这个属性
    1. window.onload=function(){
    2. var box=document.getElementById("box");//元素节点
    3. var child=box.childNodes;
    4. console.log(child[0].nodeName);//#text
    5. console.log(child[1].tagName);//undefined
    6. console.log(child[1].nodeName);//SPAN
    7. console.log(child[1].tagName);//SPAN
    8. console.log(box.nodeName);//DIV
    9. console.log(box.tagName);//DIV
    10. console.log(document.nodeName);//#document
    11. console.log(document.tagName);//undefined
    12. }
    13. <div id="box">
    14. <span>aaa</span>
    15. </div>
    四、parentNode
                 *     元素的父节点
                 * 
                 *     属性节点是没有父节点
    1. window.onload=function(){
    2. var box=document.getElementById("box");
    3. var p=box.querySelector('p');//元素节点
    4. console.log(p.parentNode);//div
    5. var attr=p.attributes;//属性节点
    6. console.log(attr[0].parentNode);//null
    7. var child=box.childNodes;//box里的所有子节点
    8. console.log(child[3].parentNode);//div#box
    9. };
    10. <div id="box">
    11. <p style=" 100px;"></p>
    12. <!--这里是注释-->
    13. </div>
    五、children
                 *     获取到父级下的第一层子元素,它是一个集合,代表所有的子元素
                 *     每个子元素都有一个对应的下标
                 *     它还有一个length属性,代表子元素的个数
                 *     这个children只选择到标签 不包含文本和注释
                 *     非标准
                 *     
                 * childNodes
                 *     获取元素的第一层的所有子节点,包含文本、注释 
       s
    1. window.onload=function(){
    2. var ul=document.querySelector("ul");
    3. console.log(ul.childNodes);
    4. //所以需要用调用函数
    5. function getChild(parent){
    6. var child=parent.childNodes;
    7. var arr=[];
    8. for(var i=0;i<child.length;i++){
    9. if(child[i].nodeType==1){
    10. //nodeTy==1是标签
    11. arr.push(child[i]);
    12. }
    13. }
    14. return arr;
    15. }
    16. var lis=getChild(ul);
    17. console.log(lis);
    18. }
    19. </script>
    20. <ul>
    21. <li><span>隐藏1</span></li>
    22. <li><span>隐藏2</span></li>
    23. <li><span>隐藏3</span></li>
    24. <li><span>隐藏4</span></li>
    25. <li><span>隐藏5</span></li>
    26. <!--这里是注释-->
    27. </ul>
    六、previousElementSibling
                 *     找到上一个兄弟节点
                 *     如果找不到的话就返回一个null
    1. window.onload=function(){
    2. var lis=document.querySelectorAll("li");
    3. lis[1].previousElementSibling.style.background='red';//下标数为0的li背景变红
    4. console.log(lis[0].previousElementSibling);//null
    5. lis[0].previousElementSibling.style.background='red';//报错
    6. }
    7. </script>
    8. <ul>
    9. <li><span>隐藏1</span></li>
    10. <li><span>隐藏2</span></li>
    11. <li><span>隐藏3</span></li>
    12. <li><span>隐藏4</span></li>
    13. <li><span>隐藏5</span></li>
    14. </ul>
    7.nextElementSibling
                 *     找到下一个兄弟节点
                 *     如果找不到的话返回一个null
    1. window.onload=function(){
    2. var lis=document.querySelectorAll("li");
    3. lis[0].nextElementSibling.style.background='red';//小标数为1的li背景变红
    4. console.log(lis[4].nextElementSibling);//ull
    5. lis[4].nextElementSibling.style.background='red';
    6. }
    7. </script>
    8. <ul>
    9. <li><span>隐藏1</span></li>
    10. <li><span>隐藏2</span></li>
    11. <li><span>隐藏3</span></li>
    12. <li><span>隐藏4</span></li>
    13. <li><span>隐藏5</span></li>
    14. </ul>
    8.firstElementChild
                 *     父级.firstElementChild
                 *     找到第一个子节点
    1. window.onload=function(){
    2. var ul=document.querySelector("ul");
    3. ul.firstElementChild.style.background='red';//获取第一个li
    4. }
    5. </script>
    6. </head>
    7. <body>
    8. <ul>
    9. <li><span>隐藏1</span></li>
    10. <li><span>隐藏2</span></li>
    11. <li><span>隐藏3</span></li>
    12. <li><span>隐藏4</span></li>
    13. <li><span>隐藏5</span></li>
    14. </ul>
    9、lastElementChild
                 *     父级.lastElementChild
                 *     找到最后一个子节点
    1. window.onload=function(){
    2. var ul=document.querySelector("ul");
    3. ul.lastElementChild.style.background='red';//获取到ul下的最后一个li
    4. };
    5. </script>
    6. </head>
    7. <body>
    8. <ul>
    9. <li><span>隐藏1</span></li>
    10. <li><span>隐藏2</span></li>
    11. <li><span>隐藏3</span></li>
    12. <li><span>隐藏4</span></li>
    13. <li><span>隐藏5</span></li>
    14. </ul>
    10、offsetParent
                 *     作用
                 *         获取离元素最近的有定位的父级
                 *         它会一层一层往上找,直到找到最近的有定位的父级后就把这个父级返回
                 *         如果父级都没有定位,那返回body(IE8以及IE8以上)
                 * 
                 *     语法
                 *         元素.offsetParent
                 *     注意
                 *         遵循一个原则,父级一定要给一个定位
                 *         body是没有offsetParent
    1. <style>
    2. div{
    3. width:100px;
    4. height:100px;
    5. border:1px solid #f00;
    6. margin:70px0070px;
    7. }
    8. #box2{
    9. position: absolute;
    10. }
    11. #box4{
    12. position: relative;
    13. }
    14. </style>
    15. <script>
    16. window.onload=function(){
    17. var box1=document.getElementById("box1");
    18. var box3=document.getElementById("box3");
    19. console.log(box1.offsetParent);//box2
    20. box1.offsetParent.style.background='red';
    21. console.log(box3.offsetParent);//box4
    22. box3.offsetParent.style.background='blue';
    23. console.log(document.body.offsetParent);//null
    24. }
    25. </script>
    26. </head>
    27. <body>
    28. <div id="box4">box4
    29. <div id="box3">box3
    30. <div id="box2">box2
    31. <div id="box1">box1</div>
    32. </div>
    33. </div>
    34. </div>
    35. </body>
    11、offsetLeft &offsetTop
                 *     作用
                 *         找到元素最左边离最近的有定位的父级之间的距离,不带单位,并且不带边框
                 *     语法
                 *         元素.offsetLeft
                 * 
                 * offsetTop
                 *     作用
                 *         找到元素最上边离最近的有定位父级之间的距离,不带单位,并且不带边框
                 * 
                 * 注意
                 *         如果没有定位的父级,那默认是到html的距离
                 *         遵循一个原则:1、给父级定位;2、一上来把默认样清掉
                                 作用:提示层例子
     
    1. <style>
    2. div{
    3. width:100px;
    4. height:100px;
    5. border:50px solid #f00;
    6. margin:70px0070px;
    7. }
    8. body{
    9. border:1px solid #f00;
    10. }
    11. #box2{
    12. position: absolute;
    13. }
    14. </style>
    15. <script>
    16. window.onload=function(){
    17. var box3=document.getElementById("box3");
    18. console.log(box3.offsetLeft);//70
    19. console.log(box3.offsetTop);//86
    20. }
    21. </script>
    22. </head>
    23. <body>
    24. <div id="box1">box1
    25. <div id="box2">box2
    26. <div id="box3">box3</div>
    27. </div>
    28. </div>
    29. </body>
    30.  
    12、getBoundingClientRect()
                 *     作用
                 *         获取到元素盒模型的一些信息,得到的结果是没有单位,不包含滚动条的距离
                 *         width            宽度(包含边框)
                 *         height            高度(包含边框)
                 *         left                从元素的最左边到可视区的最左边距离
                 *         right            从元素的最右边到可视区的最左边的距离
                 *         top                从元素的最上边到可视区的最上边的距离
                 *         bottom            从元素的最下边到可视区的最上边的距离
    1. <style>
    2. #box{
    3. width:100px;
    4. height:100px;
    5. background:#f00;
    6. position: absolute;
    7. left:300px;
    8. top:200px;
    9. border:0px solid #000;
    10. }
    11. </style>
    12. <div id="box"></div>
    13. var box=document.getElementById("box");
    14. console.log(box.getBoundingClientRect().width);//100
    13、标签属性的操作
       1.getAttribute 
                 *     用来获取元素的属性
                 *     元素.getArrtibute(属性名)
                 * 
                 *     如果参数是一个src或者href的话,那它取到的结果就是引号里面的值(相对地址)
                 *     它取不到js的自定义属性
                 *     它可以取到html标签的自定义属性
    1. window.onload=function(){
    2. var box=document.getElementById("box");
    3. var pic=document.getElementById("pic");
    4. console.log(box.id);//box
    5. console.log(pic['src']);//http://127.0.0.1:8020/javascript%E7%B2%BE%E5%93%81%E8%AF%BE%E7%A8%8B/%E7%AC%AC%E4%BA%94%E7%AB%A0/image/1.jpg
    6. console.log(box.getAttribute('class'));//color
    7. console.log(pic.getAttribute('src'));//image/1.jpg
    8. box.index=1;
    9. console.log(box.index);//1
    10. console.log(box.getAttribute('index'));//null
    11. console.log(box);
    12. console.log(box.n);//undefined
    13. console.log(box['n']);//undefined
    14. console.log(box.getAttribute('n'));//kaivon
    15. console.log(box['data-v']);//undefined
    16. console.log(box.dataset.v);//haitang
    17. }
    18. </script>
    19. </head>
    20. <body>
    21. <div id="box" n='kaivon' data-v="haitang"class="color">
    22. <img id="pic" src="image/1.jpg"/>
    23. </div>
    24. </body>
            2.setAttribute
                 *     设置属性
                 *     元素.setAttribute(attr,value);
                 *     两个参数必需同时出现
    1. window.onload=function(){
    2. var box=document.getElementById("box");
    3. box.setAttribute('id','box2');
    4. console.log(box);
    5. box.setAttribute('n','海棠');
    6. console.log(box);
    7. box.setAttribute('style','200px;height:100px');
    8. console.log(box);
    9. }
    10. </script>
    11. </head>
    12. <body>
    13. <div id="box" n='kaivon' data-v="haitang"class="color" style=" 100px;">
    14. <img id="pic" src="image/1.jpg"/>
    15. </div>
    16. </body>
            3.removeAttribute
                 *     删除属性
                 *     元素.removeAttribute(属性名)
    1. <div id="box" n='kaivon' data-v="haitang"class="color" style=" 100px;"></div>
    2. window.onload=function(){
    3. var box=document.getElementById("box");
    4. box.removeAttribute('n');
    5. console.log(box);
    6. };
    14、获取元素的宽高
                 *         元素.offsetWidth
                 *             返回元素的宽度,包含边框的
                 *         元素.clientWidth
                 *             返回元素的宽度,不包含边框
                 * 
                 * 元素的高度
                 *         元素.offsetHeight
                 *             返回元素的高度,包含边框的
                 *         元素.clientHeight
                 *             返回元素的高度,不包含边框
    15、可视区的宽高
            document.documentElement.clientWidth
            document.documentElement.clientHeight
                     作用:可以根据可视区的宽高减去元素的宽高除以2,使元素居中显示
    16、creatElement
                 *     作用
                 *         创建元素:通过标签名的形式来创建一个元素
                 *     语法
                 *         document.createElement('tagName')
                 *         createElement前面的主语只能document,其它的元素都没有这个方法
                 *     参数
                 *         标签名
                 *     返回值
                 *         返回创建的标签元素
                 *     注意
                 *         只能用来创建元素节点,不能创建文本、注释节点
                 *         创建后的标签可以对它进行操作
    17、appendChild
                 *     作用
                 *         添加元素:往父节点里在添加一个元素
                 *         注意:它是添加到父节点的最后面
                 *     语法
                 *         父节点.appendChild(childNode)
                 *     参数
                 *         子元素,一般为用caeateElement创建后的节点
                 *     返回值
                 *         返回创建的那个标签元素
                 *     注意
                 *         只能添加标签节点,不能添加其它节点
    1. window.onload=function(){
    2. var btn=document.getElementById("btn");
    3. btn.onclick=function(){
    4. var div=document.createElement('div');
    5. div.style.width='200px';
    6. div.style.height='300px';
    7. div.style.background='red';
    8. var p=document.createElement('p');
    9. p.innerHTML='这里是文字';
    10. var a=document.body.appendChild(p);//返回值
    11. console.log(a);//<p>这里是文字</p>
    12. document.body.appendChild(div);
    13. };
    14. }
    15. </script>
    16. </head>
    17. <body>
    18. <input type="button" id="btn" value="创建元素"/>
    19. </body>
    18、insertBefore
                 *     作用
                 *         插入元素,把第一个参数插入到第二个参数的前面
                 *     语法
                 *         父级.insertBefore(childNode1,childNode2)
                 *     参数
                 *         childNode1            要插入的元素
                 *         chilsNod2            决定childNod1插入的位置
                 *         
                 *         两个参数必需同时存在,否则就会报错
                 *         第二个参数如果为null或者undefined的时候,insertBefore的作用相当于appedChild
                 *     返回值
                 *         返回要插入的那个元素(第一个参数)
    1. window.onload=function(){
    2. var ul=document.querySelector("ul");
    3. var lis=document.querySelectorAll("li");
    4. var newLi=document.createElement('li');
    5. newLi.innerHTML='white';
    6. ul.insertBefore(newLi,lis[2]);
    7. var newLi2=document.createElement("li");
    8. newLi2.innerHTML='black';
    9. var result=ul.insertBefore(newLi2,lis[10]);//第二个位置不存在和没有写一样,都是appendChild的作用,在父级最后加
    10. console.log(result);//<li>black</li>
    11. }
    12. </script>
    13. <ul>
    14. <li>red</li>
    15. <li>green</li>
    16. <li>blue</li>
    17. <li>yellow</li>
    18. <li>pink</li>
    19. </ul>
    19、removeChild
                 *     作用
                 *         移除元素,从父级里移除指定的元素
                 *     语法
                 *         父级.removeChild(childNode)
                 *     参数
                 *         要删除的子元素
                 *     返回值
                 *         返回被删除掉的那个元素
    1. window.onload=function(){
    2. var ul=document.querySelector("ul");
    3. var lis=document.querySelectorAll("li");
    4. var result=ul.removeChild(lis[2]);
    5. console.log(result);//<li>blue</li>
    6. };
    7. </script>
    8. <ul>
    9. <li>red</li>
    10. <li>green</li>
    11. <li>blue</li>
    12. <li>yellow</li>
    13. <li>pink</li>
    14. </ul>
    20、replaceChild
                 *     作用
                 *         替换元素,用第一个参数替换第二个参数
                 *     语法
                 *         父级.replaceChild(node,childNode)
                 *     参数
                 *         node            要替换的元素
                 *         childNode    被替换的元素
                 *         两个参数必需同时出现,不然会报错
                 * 
                 *     返回值
                 *         返回被替换的那个元素(第二个参数)
                 * 
                 *     注意
                 *         如果用父级里的元素去替换另一个元素
                 *         替换的那个元素会跑到被替换元素的位置
                 *         被替换的那个元素会被删掉
    1. window.onload=function(){
    2. var ul=document.querySelector("ul");
    3. var lis=document.querySelectorAll("li");
    4. var newLi=document.createElement("li");
    5. newLi.innerHTML='white';
    6. var result=ul.replaceChild(newLi,lis[2]);
    7. console.log(result);//<li>blue</li>
    8. ul.replaceChild(lis[6],lis[0]);
    9. //ul.replaceChild(lis[0]); //报错
    10. };
    11. </script>
    12. <ul>
    13. <li>red</li>
    14. <li>green</li>
    15. <li>blue</li>
    16. <li>yellow</li>
    17. <li>pink</li>
    18. </ul>
     21、cloneNode
                 *     作用
                 *         克隆一个节点
                 *     语法
                 *         要克隆的节点.cloneNode(boolean)
                 *     参数
                 *         true            克隆元素和元素包含的子孙节点
                 *         false               克隆元素但是不包含子孙节点
                 *         如果不写参数的话,默认为false
                 *         克隆只克隆html、css,js是不会被克隆的,如果克隆元素身上有js的功能,那克隆后的元素是不具备的
                 *         如果克隆的元素本身有id,那克隆后的元素也会有id,两个就会重名,这样的话是不符合标准,手动去改一下id
                 *     返回值
                 *         返回被克隆的节点
    1. window.onload=function(){
    2. var box=document.getElementById("box");
    3. var spans=document.querySelectorAll("span");
    4. var divs=document.querySelectorAll("#box div");
    5. //给每个span标签添加一个事件
    6. for(var i=0;i<spans.length;i++){
    7. spans[i].onclick=function(){
    8. alert(this.innerHTML);
    9. }
    10. }
    11. var newDiv=divs[0].cloneNode(false);
    12. //var newDiv=divs[0].cloneNode(ture);
    13. //var newDiv=divs[0].cloneNode();
    14. console.log(newDiv);//<div style='color: #f00'></div>
    15. box.appendChild(newDiv);
    16. var blue=divs[2].cloneNode(true);
    17. blue.id='blue1';
    18. box.appendChild(blue);
    19. console.log(blue);//<div id="blue1">blue</div>
    20. };
    21. </script>
    22. <div id="box">
    23. <div style='color: #f00'><span>red</span><span>green</span></div>
    24. <div>yellow</div>
    25. <div id="blue">blue</div>
    26. <div>pink</div>
    27. </div>
    22、DOM操作的特性
      * appendChild/insertBefore/replaceChild在操作一个已有的元素时,是将已有的元素移动,而不是复制一份进行操作(剪切)
    23、留言板例子 
    1. window.onload=function(){
    2. var text=document.getElementById("text");
    3. var btn=document.getElementById("btn");
    4. var list=document.getElementById("list");
    5. btn.onclick=function(){
    6. var val=text.value;
    7. var li=document.createElement('li');
    8. li.innerHTML=val;
    9. //list.appendChild(li); //加杂在最后面
    10. //list.insertBefore(li,list.children[0]); //加在最前面
    11. list.insertBefore(li,list.firstElementChild);//加在最前面
    12. //list.innerHTML+='<li>'+val+'</li>'; //加在最后面
    13. };
    14. };
    15. </script>
    16. </head>
    17. <body>
    18. <input type="text" id="text" value=""/>
    19. <input type="button" id="btn" value="提交"/>
    20. <ul id="list"></ul>
    24、innerHTML与DOM操作的区别
                 * innerHTML
                 *     它会把原来的内容先清空,然后再添加新的内容,原来的内容已经没有了。只不过是新添加的内容与原来的内容长得一样而已
                 * DOM方法
                 *     会把新的内容追加到原来的内容里面,原来内容所具有的事件,依然会在
      
    1. window.onload=function(){
    2. var color=document.getElementById("color");
    3. var lis=document.getElementsByTagName("li");
    4. for(var i=0;i<lis.length;i++){
    5. lis[i].onclick=function(){
    6. alert(this.innerHTML);
    7. };
    8. }
    9. //innerHTML方法给color添加元素
    10. //color.innerHTML+='<li>white</li>';
    11. //这样上面的for循环以及点击事件就无效了,因为获取到的东西已经不存在了。
    12. //DOM方法给color添加元素
    13. var newLi=document.createElement("li");
    14. newLi.innerHTML='white';
    15. color.appendChild(newLi);
    16. };
    17. </script>
    18. </head>
    19. <body>
    20. <ul id="color">
    21. <li>red</li>
    22. <li>green</li>
    23. <li>blue</li>
    24. <li>yellow</li>
    25. <li>pink</li>
    26. </ul>
    25、动态获取元素以及静态获取元素的区别
                 * getElementsByTagName(所有的get都是动态)
                 *     动态获取元素,只要原来的结果有变化,这就能监听到,它会重新去获取一次元素,那这个时候原来的下标就变化了,变成新的下标                    了
                 * 
                 * querySlectorAll (所有的query都是静态)
                 *     静态获取元素,只获取一次,会把下标存下来,即使原来的结构有变化,它也不会去重新获取
    1. window.onload=function(){
    2. var color=document.getElementById("color");
    3. var lis=document.getElementsByTagName('li');
    4. for(var i=0;i<lis.length;i++){
    5. color.appendChild(lis[i]);
    6. /*2yellow
    7. 4pink
    8. 1green
    9. 5blue
    10. 3red*/
    11. //因为是用getElemntsByTagName,所以每一次的循环下标数都有变化
    12. //如果是用querySelectAll公获取li的话,因为下标数已经定死了
    13. /*1green
    14. 2yellow
    15. 3red
    16. 4pink
    17. 5blue*/
    18. }
    19. };
    20. </script>
    21. </head>
    22. <body>
    23. <ul id="color">
    24. <li>2yellow</li>
    25. <li>4pink</li>
    26. <li>1green</li>
    27. <li>5blue</li>
    28. <li>3red</li>
    29. </ul>
    26、DOM操作表格
                 * tbody
                 *     表格中的tbody是可以不写的,在游览器解析的时候,会自动帮你加上
                 *     建议大家写的时候要加上
                 * 
                 * 表格操作
                 *     获取表格头
                 *         表格.tHead
                 *         返回整个表格头,thead里的所有内容
                 *         注意:一个表格里只能有一个表格头
                 * 
                 *     获取表格主体
                 *         表格.tBodies
                 *         返回的是整个表格的主体内容,是一个数组
                 * 
                 *     获取表格底部
                 *         表格.tFoot
                 *         返回这个表格的底部,tfoot里的所有内容
                 *         注意:一个表格只有一个tfoot
                 * 
                 *     获取表格行
                 *         表格.rows/tHead.rows/tBodies.rows/tFoot.rows
                 *         返回各自对应的行,是个数组
                 *         注意:可以设置整个行的样式
                 * 
                 *     获取表格的单元格
                 *         行.cells
                 *         返回这一行的所有单元格,是个数组
                 *         注意:它不能对整个单元格进行操作,只能取到某一个单元格进行操作
    1. window.onload=function(){
    2. var table=document.querySelector("table");
    3. var head=table.tHead;
    4. var tbody=table.tBodies;
    5. var foot=table.tFoot;
    6. head.style.background='red';
    7. tbody[0].style.background='green';
    8. foot.style.background='blue';
    9. head.rows[0].style.color='#ccc';
    10. tbody[0].rows[2].style.color='#f90';
    11. foot.rows[0].style.color='#a9a';
    12. head.rows[0].cells[0].style.fontSize='30px';
    13. tbody[0].rows[0].cells[1].style.fontSize='40px';
    14. foot.rows[0].cells[0].style.fontSize='50px';
    15. };
    16. </script>server.Sorryfor the inconvenience.
    17. Please report this message and include the following information to us.
    18. Thank you very much!
    19. URL: http://www.wiz.cn/guidemap_sendimage.html?plat=x86&v=4.5.9.0&l=zh-cn&
    20. Server: ay1405041044122256d3z
    21. Date:2017/02/2708:33:44
    22. Powered by Tengine
    23. </head>
    24. <body>
    25. <table>
    26. <thead>
    27. <tr>
    28. <th>编号</th>
    29. <th>姓名</th>
    30. <th>性别</th>
    31. <th>年龄</th>
    32. </tr>
    33. </thead>
    34. <tbody>
    35. <tr>
    36. <td>1</td>
    37. <td>赵四</td>
    38. <td>男</td>
    39. <td>50</td>
    40. </tr>
    41. <tr>
    42. <td>2</td>
    43. <td>刘能</td>
    44. <td>男</td>
    45. <td>53</td>
    46. </tr>
    47. <tr>
    48. <td>3</td>
    49. <td>谢广坤</td>
    50. <td>女</td>
    51. <td>40</td>
    52. </tr>
    53. </tbody>
    54. <tfoot>
    55. <tr>
    56. <td colspan="4">全是人</td>
    57. </tr>
    58. </tfoot>
    59. </table>
    60. </body>
    27、DOM操作表单
                 * 操作表单
                 *     获取表单的值
                 *         node.value
                 *             input
                 *             select
                 *             textarea
                 *     
                 * 给每个表单都添加了一个name属性,用这个属性去获取到相应的表单元素
                 * 
                 * selectedIndex
                 *     获取到下拉框里内容对应的索引值,它的索引值是默认添加上去的
                 * 
                 * oninput
                 *     只要在输入框里输入内容的时候就会触发这个事件
                 * 
                 * onchange
                 *     当下拉框里的内容有变化的时候就会触发这个事件
                 * 
                 * onsubmit
                 *     当表单提交的时候会触发(点击submit按钮才能触发)
                 *     表单.onsubmit
                 * 
                 * onreset
                 *     当表单被重置的时候会触发(点击重置按钮才能触发)
                 *     表单.onreset
                 * 
                 * 表单的方法
                 *     表单.submit()        提交表单,会触发onsubmit事件
                 *     表单.reset()            重置表单,会触发onreset事件
    1. window.onload=function(){
    2. var form=document.getElementById("form");
    3. form.btn.onclick=function(){
    4. console.log(form.username.value);//获取到输入框里的值
    5. console.log(form.sex.value);//获取单先框的值
    6. console.log(form.sel.value,form.sel.selectedIndex);//获取select框里的值
    7. //获取到checkBox的值
    8. //console.log(form.interest[0].value);
    9. var arr=[];
    10. for(var i=0;i<form.interest.length;i++){
    11. if(form.interest[i].checked){
    12. arr.push(form.interest[i].value);
    13. }
    14. }
    15. console.log(arr);
    16. };
    17. form.username.oninput=function(){
    18. console.log('你有输入内容了')
    19. };
    20. form.sel.onchange=function(){
    21. console.log('你选择的内容有变化了');
    22. };
    23. form.onsubmit=function(){
    24. alert('你的表单要被提交了');
    25. };
    26. form.onreset=function(){
    27. alert('你的表单要被重置了');
    28. };
    29. form.send.onclick=function(){
    30. //form.submit();
    31. form.reset();
    32. };
    33. };
    34. </script>
    35. </head>
    36. <body>
    37. <form action="#" id="form">
    38. <input type="text" name="username" value=""/>
    39. <p>
    40. 性别
    41. <input type="radio" name="sex" value="男"/>男
    42. <input type="radio" name="sex" value="女"/>女
    43. </p>
    44. <p>
    45. 兴趣
    46. <input type="checkbox" name="interest" value="吃饭"/>吃饭
    47. <input type="checkbox" name="interest" value="睡觉"/>睡觉
    48. <input type="checkbox" name="interest" value="打豆豆"/>打豆豆
    49. </p>
    50. <p>
    51. 来自于
    52. <select name="sel">
    53. <option value="北京">北京</option>
    54. <option value="上海">上海</option>
    55. <option value="广州">广州</option>
    56. </select>
    57. </p>
    58. <textarea name="text" rows="10" cols="30"></textarea>
    59. <input type="button" name="btn" value="点击"/>
    60. <input type="submit" name="sub" value="提交"/>
    61. <input type="reset" name="res" value="重置"/>
    62. <input type="button" name="send" value="发送"/>
    63. </form>
                增加事件:  onmouseover     当鼠标放在上面
                                     onmouseout        当鼠标放开
    通过样式该显示
    xx.onclick=yy.onclick=function(){}
    return  是否在作用于内是否有效果
     





  • 相关阅读:
    Ubuntu下Sublime Text 2优化配置
    Ubuntu14.04 设置wifi热点
    我是如何从程序小白成为码农的
    eclipse 配置黑色主题
    经典面试题(1):统计整数中1的个数
    Matlab一个错误引发的血案:??? Error using ==> str2num Requires string or character array input.
    折腾到死:matlab7.0 安装
    VMware 与Ubuntu通过samba服务器共享文件
    大自然的搬运工:Ubuntu环境下gedit的一些个简单配置
    UML(Unified Model Language)统一建模语言
  • 原文地址:https://www.cnblogs.com/CafeMing/p/6501632.html
Copyright © 2011-2022 走看看