JS的DOM操作语法

整理了一下JS的DOM操作语法,这里记录一下。

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="utf-8">
  5     <title>js的DOM操作</title>
  6     <style type="text/css">
  7         .dvClass{
  8             width: 300px;
  9             height: 400px;
 10             background-color: red;
 11         }
 12 
 13         .divHide{
 14             width: 500px;
 15             height: 300px;
 16             background-color: red;
 17             margin: 0 auto;
 18         }
 19 
 20         .divBorder{
 21             width: 200px;
 22             height: 150px;
 23             float: left;
 24             border: 1px solid #000;    /*#000是黑色*/
 25             margin-left: 20px;
 26             text-align: center;
 27             line-height: 165px;
 28             font-size: 19px;
 29         }
 30 
 31         #querySel{
 32 
 33         }
 34     </style>
 35 </head>
 36 <body>
 37     <input type="button" value="确定" id="btn">
 38     <input type="button" value="确定">
 39     <input type="button" value="确定">
 40 
 41     <div id="dv">你好</div>
 42     <div id="dv3"><p>新年好</p></div>
 43     <div>大家好</div>
 44 
 45     <img src="" id="picture">
 46 
 47     <img src="desk.jpg" id="picture2">
 48 
 49     <a href="desk.jpg" id="aid"><img src="deskSmall.jpg" id="srcid"></a>
 50 
 51     <div class="divHide" id="dv2"></div>
 52     <input type="button" value="显示" id="show">
 53     <input type="button" value="隐藏" id="hide">
 54     <input type="button" value="隐藏" name="" id="showAndHide">
 55 
 56     <input type="text" name="" id="tx">
 57     <input type="button" name="" value="只读" id="btn1">
 58 
 59     <a href="www.baidu.com" id="a1">百度</a>
 60 
 61     <ul id="ul1">
 62         <li>隔行变色</li>
 63         <li>隔行变色</li>
 64         <li>隔行变色</li>
 65         <li>隔行变色</li>
 66     </ul>
 67     <hr>
 68     <ul>
 69         <li>隔行变色</li>
 70         <li>隔行变色</li>
 71         <li>隔行变色</li>
 72         <li>隔行变色</li>
 73     </ul>
 74     <input type="button" name="" value="点击变色" id="btn2">
 75 
 76     <ul id="ul2">
 77         <li>隔行变色</li>
 78         <li>隔行变色</li>
 79         <li>隔行变色</li>
 80         <li>隔行变色</li>
 81     </ul>
 82 
 83     <div class="divBorder">111</div>
 84     <div class="divBorder">222</div>
 85     <div class="divBorder">333</div>
 86 
 87     <input type="text" name="" value="请输入内容" id="getFocus">
 88 
 89     <div id="querySel">12345</div>
 90     <input type="button" name="" value="选择器获取元素" id="btn3">
 91 
 92     <div>aaa</div>
 93     <div>bbb</div>
 94     <div>ccc</div>
 95     <input type="button" name="" value="setAttribute" id="setAtt">
 96 
 97     <div id="dv4">
 98         <p id="p1">11</p>
 99         <span>22</span>
100         <ul>
101             <li>33</li>
102             <li>44</li>
103             <li>55</li>
104         </ul>
105     </div>
106     <input type="button" name="" value="创建" id="create">
107 
108     <div id="uu"></div>
109     <input type="button" name="" value="创建" id="create2">
110 
111     <div id="delDiv">
112         <p>11</p>
113         <span>22</span>
114         <p>33</p>
115         <span>中国</span>
116     </div>
117     <input type="button" name="" value="删除" id="del">
118 
119     <script type="text/javascript">
120         /*获取元素对象的方法*/
121         document.getElementById("id的值");
122         document.getElementsByTagName("标签名");        //返回的是数组
123         document.getElementsByTagName("name的值");    //返回的是数组
124         document.getelementsByClassName("class的值");    //返回的是数组
125         document.getElementById("btn3").onclick=function(){
126             var obj=document.querySelector("#querySel");    //根据选择器名(id选择器、类选择器)获取元素,并给元素内属性赋值
127             obj.style.width="300px";
128             obj.style.height="200px";
129             obj.style.backgroundColor="red";
130         }
131         
132 
133 
134         /*鼠标点击事件*/
135         //点击按钮,弹出对话框
136         var btnClick=document.getElementById("btn");    //通过document.getElementById()方法返回一个document对象,getElementById("btn")的作用是找到值为btn的id
137         btnClick.onclick=function(){    //定义一个点击事件
138             alert("hello world!");    //弹出框
139         }
140 
141         //点击按钮,通过标签id,改变div标签里面的内容
142         document.getElementById("btn").onclick=function(){
143             document.getElementById("dv").innerText="你好,世界";
144             //document.getElementById("dv3").innerText="新年好啊";    //因为dv3的内容是写在p标签里的,所以不能用innerText,否则p标签会消失
145             document.getElementById("dv3").innerHTML="新年好啊啊啊";
146         }
147 
148         //点击按钮,通过标签id,改变div标签的样式
149         document.getElementById("btn").onclick=function(){
150             //第1种方法
151             var obj=document.getElementById("dv");
152             obj.style.width="300px";
153             obj.style.height="300px";
154             obj.style.backgroundColor="#000";    //#000是黑色
155             obj.style.marginTop="20px";    //设置div上边距为20px
156 
157             //第2种方法(通过将标签的class属性,改成style里面的类选择器名)
158             obj.className="dvClass";    //这里可以同时赋多个className,用空格分隔,比如obj.className="dvClass dvClass2";
159         }
160 
161         //点击按钮,通过标签id,在img标签里,显示图片
162         document.getElementById("btn").onclick=function(){
163             document.getElementById("picture").src="desk.jpg";
164         }
165 
166         //点击图片,通过this关键字,改变img标签里,图片的宽和高
167         document.getElementById("picture2").onclick=function(){
168             this.width="300";    //图片的长宽比较特殊,所以不加px
169             this.height="300";
170         }
171 
172         //点击按钮,通过标签名字,获取到所有标签
173         document.getElementById("btn").onclick=function(){
174             var arr=document.getElementsByTagName("div");    //因为标签可能重复,所以通过标签名字获取到的是数组形式
175             for(var i=0;i<arr.length;i++){
176                 arr[i].innerText="全部改变";
177             }
178         }
179 
180         //点击按钮,通过标签id,和this关键字,改变按钮的内容
181         document.getElementById("btn").onclick=function(){
182             this.value="点击";
183         }
184 
185         //排他功能(即点击按钮后,按钮内容改变,再点击其他按钮,已经改变的按钮内容恢复)
186         var arr=document.getElementsByTagName("input");    //通过标签名字获取到的是数组
187         for(var i=0;i<arr.length;i++){
188             arr[i].onclick=function(){
189                 for(var j=0;j<arr.length;j++){
190                     arr[j].value="确定";
191                 }
192                 this.value="点击";
193             }
194         }
195 
196         //点击超链接,使图片不在新页面打开,而在当前页面打开
197         document.getElementById("srcid").onclick=function(){
198             this.src=document.getElementById("aid").href;
199             return false;    //必须要有这个
200         }
201 
202         //点击两个按钮,显示和隐藏div
203         document.getElementById("hide").onclick=function(){
204             document.getElementById("dv2").style.display="none";
205         }
206         document.getElementById("show").onclick=function(){
207             document.getElementById("dv2").style.display="block";
208         }
209 
210         //点击一个按钮,显示和隐藏div
211         document.getElementById("showAndHide").onclick=function(){
212             if(this.value=="隐藏"){
213                 document.getElementById("dv2").style.display="none";
214                 this.value="显示";
215             }else if(this.value=="显示"){
216                 document.getElementById("dv2").style.display="block";
217                 this.value="隐藏";
218             }
219         }
220 
221         //点击“只读”按钮,让文本框不可编辑
222         document.getElementById("btn1").onclick=function(){
223             document.getElementById("tx").disabled=true;
224         }
225 
226         //点击超链接,禁止跳转到链接的界面
227         document.getElementById("a1").onclick=function(){
228             return false;    //这句是禁止跳转的功能
229         }
230 
231         //列表各行变色
232         document.getElementById("btn2").onclick=function(){
233             var arr=document.getElementById("ul1").getElementsByTagName("li");    //只要第一个列表中的行变色
234             for(var i=0;i<arr.length;i++){
235                 if(i%2==0){
236                     arr[i].style.backgroundColor="red";
237                 }
238             }
239         }
240 
241 
242 
243         /*鼠标悬停和离开事件*/
244         //鼠标移到行上,行的颜色改变
245         var arr=document.getElementById("ul2").getElementsByTagName("li");
246         for(var i=0;i<arr.length;i++){
247             arr[i].onmouseover=function(){    //鼠标悬停事件
248                 this.style.backgroundColor="red";
249             }
250 
251             arr[i].onmouseout=function(){
252                 this.style.backgroundColor="#FFF";    //鼠标离开事件,#FFF是白色
253             }
254         }
255 
256         //div边框高亮显示
257         var arr=document.getElementsByTagName("div");
258         for(var i=0;i<arr.length;i++){
259             arr[i].onmouseover=function(){
260                 this.style.border="1px solid red";
261             }
262             arr[i].onmouseout=function(){
263                 this.style.border="1px solid #000";
264             }
265         }
266 
267 
268 
269         /*获取焦点和失去焦点事件*/
270         //获取到焦点,使文本框内容消失
271         document.getElementById("getFocus").onfocus=function(){
272             if(this.value=="请输入内容"){    //防止已经输入内容,再次修改时,内容被清空
273                 this.value="";
274             }
275         }
276 
277         // //失去焦点,使文本框内容恢复
278         document.getElementById("getFocus").onblur=function(){
279             if(this.value==""){    //避免输入内容后,失去焦点,输入的内容被清空
280                 this.value="请输入内容";
281             }
282         }
283 
284 
285 
286         /*标签属性*/
287         document.getElementById("setAtt").onclick=function(){
288             //设置属性
289             document.getElementsByTagName("div")[0].setAttribute("class","divBorder");    //[0]代表返回数组中的第一个元素,setAttribute里面分别是属性名和属性值
290             //获取属性
291             var obj=document.getElementsByTagName("div")[0].getAttribute("class");    //getAttribute里面填属性名就返回属性值,填属性值就返回属性名,没有就返回null
292             alert(obj);
293             //删除属性
294             document.getElementsByTagName("div")[0].removeAttribute("class");
295         }
296 
297 
298 
299         /*节点
300         类型:nodeType,值1为标签节点,2为属性节点,3为文本节点
301         名字:nodeName,大写的标签名——标签类型,小写的属性名——属性类型,#text——文本类型
302         节点的值:nodeValue,null——标签类型,属性值——属性类型,文本内容——文本类型*/
303         //获取标签的父节点
304         var obj=document.getElementById("p1").parentNode;    //获取父节点
305         console.log(obj);    //输出<div id="dv4">,说明P1所在标签的父元素为<div>
306         console.log("节点的类型:"+obj.nodeType+",节点的名字:"+obj.nodeName+",节点的值:"+obj.nodeValue);
307 
308         //获取父级元素
309         console.log(document.getelement("dv4").parentElement);
310 
311         //获取子节点
312         var obj1=document.getElementById("dv4").childNodes;    //返回的是数组
313         console.log(obj1);    //输出:NodeList(7) [ #text, p#p1, #text, span, #text, ul, #text ],所以一共有7个节点
314 
315         //获取第一个子节点
316         console.log(document.getelement("dv4").firstChild);
317 
318         //获取最后一个子节点
319         console.log(document.getelement("dv4").lastChild);
320 
321         //获取子元素
322         var obj2=document.getElementById("dv4").children;
323         console.log(obj2);    //HTMLCollection { 0: p#p1, 1: span, 2: ul, length: 3, … },所以一共有3个子元素
324 
325         //获取第一个子元素
326         console.log(document.getElementById("dv4").firstElementChild);
327 
328         //获取最后一个子元素
329         console.log(document.getElementById("dv4").lastElementChild);
330 
331 
332 
333         /*创建标签*/
334         //方法1
335         document.getElementById("create").onclick=function(){
336             document.write("<p>增加的标签</p>");    //这种方式会将html里面其他标签都清空,只留这个增加的
337         }
338 
339         //方法2
340         document.getElementById("create").onclick=function(){
341             document.getElementById("dv4").innerHTML="<p>哈哈哈哈</p>";    //这种方式会将dv4所在标签内的,子标签都清空,只留增加的
342         }
343 
344         //方法3
345         document.getElementById("create").onclick=function(){
346             var obj=document.createElement("p");    //先创建一个p标签
347             document.getElementById("dv4").appendChild(obj);    //然后添加,这种方式不清空之前的标签,只增加
348         }
349 
350         //创建图片标签
351         document.getElementById("create").onclick=function(){
352             document.getElementById("dv4").innerHTML="<img src=desk.jpg/>";
353         }
354 
355         //根据数组创建列表标签
356         document.getElementById("create2").onclick=function(){
357             var arr=["新闻标题1","新闻标题2","新闻标题3","新闻标题4","新闻标题5","新闻标题6"];
358             var str="<ul>";
359             for(var i=0;i<arr.length;i++){
360                 str+="<li>"+arr[i]+"</li>";
361             }
362             str+="</ul>";
363             document.getElementById("uu").innerHTML=str;
364         }
365 
366 
367 
368         /*删除元素*/
369         document.getElementById("del").onclick=function(){
370             document.getElementById("delDiv").removeChild(document.getElementById("delDiv").firstElementChild);    //删除第一个元素
371             document.getElementById("delDiv").removeChild(document.getElementById("delDiv").lastElementChild);    //删除第一个元素
372         }
373     </script>
374 </body>
375 </html>

 

posted @ 2019-11-28 20:36  打点  阅读(579)  评论(0编辑  收藏  举报