首页 > 其他 > 详细

DOM查询

时间:2019-07-27 01:09:44      阅读:130      评论:0      收藏:0      [点我收藏+]
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <script type="text/javascript">
 8  window.onload=function(){
 9  var body=document.getElementsByTagName("body")[0];
10  console.log(body);
11  /*
12  在document中有一个属性body,它保存的是body的引用
13  document.documentElement保存的是HTML根标签
14  document.all代表页面中所有的元素
15  */
16  var all=document.all;
17  alert(all.innerHTML);//HTMLAllCollection
18  var body=document.body;
19  //alert(body);//HTMLBodyElement
20 
21  all=document.getElementsByTagName("*");
22  console.log(all.length);
23  /*
24  根据元素的class属性值查询一组元素节点对象
25  getElementsByClassName()可以根据Class属性值获取一组元素节点对象,
26  但是该方法不支持IE8及以下的浏览器
27  */
28  var box1=document.getElementsByClassName("box1");
29  console.log(box1.length);
30 
31  /*
32  获取页面中的所有的div
33  */
34  var divs=document.getElementsByTagName("div");
35  console.log(divs.length);
36  /*
37  .box1 div
38  document.querySelector()
39  需要一个选择器的字符串作为参数,可以根据一个CSS选择器来查询一个元素节点对象
40  使用该方法总会返回唯一的一个元素,如果满足条件的元素有多个,那么它只会返回第一个
41  document.querySelectorAll()
42  该方法和querySelector(),不同的是它返回符号条件的元素封装到一个数组,
43  即使符合条件的只有一个也要返回数组
44  */
45  var b=document.querySelector(".box1 div");
46  console.log(b.innerHTML);
47  var a=document.querySelector(".box1");
48  console.log(a.innerHTML);
49  var box1=document.querySelectorAll(".box1");
50  console.log(box1.length);
51  for(var i=0;i<box1.length;i++)
52  console.log(box1[i].innerHTML);
53  };
54   </script>
55 
56 <body>
57 
58 <div class="box1">
59 <div>123</div>
60 </div>
61 <div class="box1">2</div>
62 <div class="box1">3</div>
63 </body>
64 </html>

DOM增删查改

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="UTF-8">
  5     <title></title>
  6 </head>
  7 <script type="text/javascript">
  8 function myClick(str,fun)
  9 {
 10    str=document.getElementById(str);
 11    str.onclick=fun;
 12 }
 13  window.onload=function(){
 14  myClick("01",function(){
 15 /*
 16 document.createElement()可以用于创建一个元素节点对象
 17 它需要一个标签名作为参数
 18 */
 19 var li =document.createElement("li");
 20 /*
 21 document.createTextNode()
 22 可以用来创建一个文本节点对象
 23 需要一个文本内容作为参数,将会根据该内容创建文本节点,并将新的节点返回
 24 */
 25 var b=document.createTextNode("深圳");
 26 /*将b设置li的子节点
 27 appendChild()
 28 向一个父节点中添加一个新的子节点
 29 用法 父节点.appendChild(子节点);
 30 */
 31 li.appendChild(b);
 32 var city=document.getElementById("city");
 33 //将广州添加到city下
 34 city.appendChild(li);
 35  });
 36 /*
 37 insertBefore()
 38 可以在指定的子节点前插入新的节点
 39 语法 父节点.insertBefore(新节点,旧节点)
 40 */
 41 myClick("02",function(){
 42 var li=document.createElement("li");
 43 var b=document.createTextNode("广州");
 44 li.appendChild(b);
 45 var city=document.getElementById("city");
 46 var bj=document.getElementById("bj");
 47 city.insertBefore(li,bj);
 48 });
 49 myClick("03",function(){
 50 var bj=document.getElementById("bj");
 51 var li=document.createElement("li");
 52 var b=document.createTextNode("广东");
 53 li.appendChild(b);
 54 /*
 55 replaceChild()
 56 可以使用指定的子节点替换已有的节点
 57 语法 父节点.replaceChild(新节点,旧节点);
 58 */
 59 city.replaceChild(li,bj);
 60 });
 61 myClick("04",function(){
 62 var bj=document.getElementById("bj");
 63 var city=document.getElementById("city");
 64 /*
 65 removeChild()
 66 可以删除一个子节点
 67 语法 父节点.removeChild(子节点);
 68 子节点.parentNode.removeChild(子节点);
 69 */
 70 city.removeChild(bj);
 71 bj.parentNode.removeChild(bj);
 72 });
 73 myClick("05",function(){
 74 var city=document.getElementById("city");
 75 alert(city.innerHTML);
 76 });
 77 myClick("06",function(){
 78 var bj=document.getElementById("bj");
 79 bj.innerHTML="成都";
 80 /*
 81 使用innerHTML也可以完成DOM的增删改的相关操作
 82 city.innerHTML+="<li>广州</li>";//一般会将两种方式结合使用
 83 
 84 //创建一个li
 85 var li=document.createElement("li");
 86 li.innerHTML="广州";
 87 //将li添加到city中
 88 city.appendChild(li);
 89 
 90 
 91 */
 92 });
 93  };
 94   </script>
 95 
 96 <body>
 97 
 98 <div>
 99     <p>你喜欢什么城市?</p>
100     <ul id="city">
101         <li>上海</li>
102         <li id="bj">北京</li>
103     </ul>
104 </div>
105 <input type="button" id="01" value="将深圳添加到#city下"/>
106 <input type="button" id="02" value="将广州添加到北京下"/>
107 <input type="button" id="03" value="使用广东节点替换北京节点"/>
108 <input type="button" id="04" value="删除北京节点"/>
109 <input type="button" id="05" value="读取#city内的HTML代码">
110 <input type="button" id="06" value="设置#bj内的HTML代码">
111 </body>
112 </html>

技术分享图片

不知道为什么 添加新元素后没能将其删除成功

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="UTF-8">
  5     <title></title>
  6 </head>
  7 <script type="text/javascript">
  8 
  9     function del(){
 10     /*
 11     点击超链接以后,超链接会跳转页面,这个是超链接的默认行为,但是此时我们不希望出现默认行为,
 12     可以通过在响应函数的最后return false 来取消默认行为
 13     */
 14     //return false;在Firefox和IE里好像没有效果
 15     /*
 16     点击超链接以后需要删除超链接所在的那行
 17     这里我们点击那个超链接this就是谁
 18     获取当前的tr
 19     */
 20     var tr=this.parentNode.parentNode;
 21     //获取要删除要元素的名字
 22     var b=tr.getElementsByTagName("th")[0].innerHTML;
 23      //alert(b);
 24     /*
 25     confirm()用于弹出一个带有确认和取消按钮的提示框
 26     需要一个字符串作为参数,该字符串将会作为提示文字显示出来
 27     如果用户点击确定则会返回true,点击取消则会返回false
 28     */
 29     var flag=confirm("确认删除"+b+"吗?");
 30     if(flag)
 31     tr.parentNode.removeChild(tr);
 32     };
 33 
 34     window.onload=function(){
 35     //点击超链接删除一个员工的信息
 36     //获取使用超链接
 37     var allA=document.getElementsByTagName("a");
 38     for(var i=0;i<allA.length;i++){
 39     allA[i].onclick=del;
 40     }
 41     //为提交按钮绑定一个单击响应函数,获取文本框的内容用value值
 42     var addEmpButton=document.getElementById("addEmpButton");
 43     addEmpButton.onclick=function(){
 44     var name=document.getElementById("empName").value;
 45     var email=document.getElementById("email").value;
 46     var salary=document.getElementById("salary").value;
 47     //alert(name+" "+email+" "+salary);
 48     //需要将获取到的节点保存到tr
 49     var tr=document.createElement("tr");
 50 
 51     var nameTd=document.createElement("td");
 52     var emailTd=document.createElement("td");
 53     var salaryTd=document.createElement("td");
 54     var aTd=document.createElement("td");
 55     //超链接
 56     var a=document.createElement("a");//a标签
 57 
 58     //创建文本节点
 59     var nameText=document.createTextNode(name);
 60     var emailText=document.createTextNode(email);
 61     var salaryText=document.createTextNode(salary);
 62     var delText=document.createTextNode("Delete");//在a标签中插入delete
 63 
 64     //将文本条件到td中
 65     nameTd.appendChild(nameText);
 66     emailTd.appendChild(emailText);
 67     salaryTd.appendChild(salaryText);
 68     a.appendChild(delText);
 69     aTd.appendChild(a);
 70 
 71     //将td加入tr
 72     tr.appendChild(nameTd);
 73     tr.appendChild(emailTd);
 74     tr.appendChild(salaryTd);
 75     tr.appendChild(aTd);
 76 
 77     //向a中添加href属性
 78     a.href="javascript:;";
 79     a.onclick=del;
 80     //获取table
 81     var employeeTable=document.getElementById("employeeTable");
 82     var tbody=employeeTable.getElementsByTagName("tbody")[0];
 83 
 84     //将tr添加到table中
 85     tbody.appendChild(tr);
 86     };
 87 
 88     };
 89   </script>
 90 
 91 <body>
 92 <table id="employeeTable">
 93     <tr>
 94         <th>Name</th>
 95         <th>Email</th>
 96         <th>Salary</th>
 97         <th>&nbsp;</th>
 98     </tr>
 99     <tr>
100         <th>Tom</th>
101         <th>tom@tom.com</th>
102         <th>5000</th>
103         <th><a href="javascript:;">Delete</a></th>
104     </tr>
105     <tr>
106         <th>Jerry</th>
107         <th>jerry@sohu.com</th>
108         <th>8000</th>
109         <th><a href="javascript:;">Delete</a></th>
110     </tr>
111     <tr>
112         <th>Bob</th>
113         <th>bob@sohu.com</th>
114         <th>2000</th>
115         <th><a href="javascript:;">Delete</a></th>
116     </tr>
117 </table>
118 
119 <div id="formDiv">
120     <h4>添加新员工</h4>
121     <table>
122         <tr>
123             <td class="word">name:</td>
124             <td class="inp">
125             <input type="text" name="empName" id="empName"/>
126             </td>
127         </tr>
128 
129         <tr>
130             <td class="word">email:</td>
131             <td class="inp">
132             <input type="text" name="email" id="email"/>
133             </td>
134         </tr>
135 
136         <tr>
137             <td class="word">salary:</td>
138             <td class="inp">
139                 <input type="text" name="salary" id="salary"/>
140             </td>
141         </tr>
142 
143         <tr>
144             <td colspan="2" align="center">
145                 <button id="addEmpButton" value="abc">Submit</button>
146             </td>
147         </tr>
148     </table>
149 </div>
150 </body>
151 </html>

 

 

 

 

技术分享图片

 

DOM查询

原文:https://www.cnblogs.com/zuiaimiusi/p/11253579.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!