Loading

15DOM学习

  1 <!doctype html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <meta name="viewport"
  6           content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8     <title>15DOM学习</title>
  9 </head>
 10 <body>
 11 <!--15.1 js需要等到dom加载后再执行-->
 12 <!--script标签通常放到head或body里面,浏览器格式化HTML时会将script标签放到body里面-->
 13 
 14 <!--15.1.1 方式1 -->
 15 <!--<h2 id = "hw">hello World</h2>-->
 16 <!--<script src="./15Dom/15.1.js"></script>-->
 17 
 18 <!--15.1.2 方式二 -->
 19 <!--<script src="./15Dom/15.1.js" defer="defer"></script>-->
 20 <!--<h2 id = "hw">hello World</h2>-->
 21 
 22 <!--15.1.2 方式三 -->
 23 <!--<script>-->
 24 <!--    window.onload = function () {-->
 25 <!--        let hw = document.getElementById("hw");-->
 26 <!--        console.log(hw.innerText);-->
 27 <!--    };-->
 28 <!--</script>-->
 29 <!--<h2 id = "hw">hello World</h2>-->
 30 
 31 <!--15.2 DOM节点node的概念-->
 32 <!--
 33 常用节点: 标签节点(类型编号: 1)、文本节点(类型编号: 3)、注释节点(类型编号: 8)、属性节点(类型编号: 2)
 34 -->
 35 <!--<h2>baidu.com</h2>-->
 36 <!--<script>-->
 37 <!--   let h2 = document.childNodes[1].childNodes[2].childNodes[37];-->
 38 <!--   console.log(h2); // <h2>baidu.com</h2>-->
 39 <!--   console.log(h2.childNodes[0]); // baidu.com-->
 40 <!--</script>-->
 41 
 42 <!--15.3 JS常用DOM节点元素的获取-->
 43 <!--<div id = app></div>-->
 44 <!--<script>-->
 45 <!--// 获取body-->
 46 <!--console.log(document.querySelector('body'));-->
 47 <!--console.log(document.body);-->
 48 
 49 <!--// 获取head-->
 50 <!--console.log(document.head);-->
 51 
 52 <!--// 获取id(低版本浏览器可能无法使用)-->
 53 <!--console.log(app);-->
 54 
 55 <!--// 获取超链接-->
 56 <!--console.log(document.links[0].innerHTML);-->
 57 
 58 <!--// 获取title-->
 59 <!--console.log(document.title);-->
 60 
 61 <!--// 获取URL-->
 62 <!--console.log(document.URL);-->
 63 
 64 <!--// 获取表单信息-->
 65 <!--console.log(document.forms);-->
 66 
 67 <!--// 获取html-->
 68 <!--console.log(document.documentElement);-->
 69 <!--</script>-->
 70 
 71 <!--15.4 nodeValue-->
 72 <!--
 73 标签节点没有nodeValue,属性节点、文本节点、注释节点有nodeValue。
 74 -->
 75 <!--<div id="app">-->
 76 <!--    baidu-->
 77 <!--&lt;!&ndash;注释内容&ndash;&gt;-->
 78 <!--</div>-->
 79 <!--<script>-->
 80 <!--    let app = document.getElementById("app");-->
 81 <!--    // 标签节点的nodeValue-->
 82 <!--    console.log(app.nodeValue);                // null-->
 83 <!--    // 属性节点的nodeValue-->
 84 <!--    console.log(app.attributes.id.nodeValue);  // app-->
 85 <!--    // 文本节点的nodeValue-->
 86 <!--    console.log(app.childNodes[0].nodeValue);  // baidu-->
 87 <!--    // 注释节点的nodeValue-->
 88 <!--    console.log(app.childNodes[1].nodeValue);  // 注释内容-->
 89 
 90 <!--    // nodeName(用于所有节点)和tagName(只用于标签节点)-->
 91 <!--    console.log(app.nodeName);                 // DIV-->
 92 <!--    console.log(app.attributes.id.nodeName);   // id-->
 93 <!--    console.log(app.tagName);                  // DIV-->
 94 <!--    console.log(app.attributes.id.tagName);    // undefined-->
 95 <!--</script>-->
 96 
 97 <!--15.5 DOM 节点的遍历-->
 98 <!--<div>1</div>-->
 99 <!--<div>2</div>-->
100 <script>
101     /*15.5.1 getElementsByTagName*/
102     // 获取所有div标签节点
103     // let nodes = document.getElementsByTagName('div');
104     // console.log(nodes);  // HTMLCollection(2)[div, div]
105     // for (let node of nodes) {
106     //     console.log(node);
107     //     /*
108     //     <div>1</div>
109     //     <div>2</div>
110     //     */
111     // }
112 
113     /*15.5.2 querySelectorAll*/
114     // 获取所有div标签节点
115     // let nodes = document.querySelectorAll('div');
116     // console.log(nodes);  // NodeList(2)[div, div]
117     // for (let node of nodes) {
118     //     console.log(node);
119     //     /*
120     //     <div>1</div>
121     //     <div>2</div>
122     //     */
123     // }
124 </script>
125 
126 <!--15.6 节点关系查找-->
127 <!--操作标签节点时会包括文本节点和注释节点-->
128 <!--<ul>-->
129 <!--    <li>-->
130 <!--        <h1></h1>-->
131 <!--        <span></span>-->
132 <!--    </li>-->
133 <!--</ul>-->
134 
135 <!--<script>-->
136 <!--    // 查找一个ul标签节点-->
137 <!--    let ul = document.querySelector('ul');-->
138 <!--    console.log(ul);-->
139 <!--    // 查找ul标签节点的子节点h1节点-->
140 <!--    let h1 = ul.childNodes[1].childNodes[1];-->
141 <!--    console.log(h1);-->
142 <!--    // 查找h1标签节点的下一个节点span节点-->
143 <!--    let span = h1.nextSibling.nextSibling;-->
144 <!--    console.log(span);-->
145 <!--    // 查找span标签节点的上一个节点h1节点-->
146 <!--    let h1_1 = span.previousSibling.previousSibling;-->
147 <!--    console.log(h1_1);-->
148 
149 <!--    console.log(document.documentElement.parentNode === document);       // true-->
150 <!--    console.log(document.childNodes[1] === document.documentElement);    // true-->
151 <!--</script>-->
152 
153 <!--15.7 针对标签元素的关系操作-->
154 <!--操作标签元素时不会包括文本节点和注释节点-->
155 <!--注意: document是标签节点不是标签元素-->
156 <!--<div id="app">-->
157 <!--    <div class="baidu" data="bd">baidu.com</div>-->
158 <!--    <div class="sina">-->
159 <!--        sina.com-->
160 <!--        <span>新浪</span>-->
161 <!--    </div>-->
162 <!--    <div class="google">google.com</div>-->
163 <!--</div>-->
164 
165 <!--<script>-->
166 <!--    查找一个id为app的标签节点-->
167 <!--    let app = document.querySelector("#app");-->
168 <!--    console.log(app);-->
169 <!--    // 获取 id 为 app 下的所有子标签元素-->
170 <!--    console.log(app.children);          // HTMLCollection(3)[div.baidu, div.sina, div.google]-->
171 <!--    // 获取 id 为 app 下的所有子标签节点-->
172 <!--    console.log(app.childNodes);        // NodeList(7)[text, div.baidu, text, div.sina, text, div.google, text]-->
173 <!--    // 获取 id 为 app 下的第一个子标签元素-->
174 <!--    console.log(app.firstElementChild); // <div class="baidu" data="bd">baidu.com</div>-->
175 <!--    // 获取 id 为 app 下的最后一个子标签元素-->
176 <!--    console.log(app.lastElementChild);  // <div class="google">google.com</div>-->
177 <!--    // 获取 id 为 app 的父标签元素-->
178 <!--    console.log(app.parentElement);     // body-->
179 <!--    // 获取兄弟标签元素-->
180 <!--    let sina = document.querySelector(".sina");-->
181 <!--    console.log(sina.previousElementSibling);   // <div class="baidu" data="bd">baidu.com</div>-->
182 <!--    console.log(sina.nextElementSibling);       // <div class="google">google.com</div>-->
183 <!--</script>-->
184 
185 <!--15.8 使用getElementsByClassName获取标签节点-->
186 <!--<div>-->
187 <!--    <ul>-->
188 <!--        <li class="bd item">baidu.com</li>-->
189 <!--        <li class="item">百度</li>-->
190 <!--        <li class="bd">-->
191 <!--            搜索引擎-->
192 <!--            <div class="bd">中文</div>-->
193 <!--        </li>-->
194 <!--    </ul>-->
195 <!--</div>-->
196 
197 <!--<script>-->
198 <!--    let bd = document.getElementsByClassName('bd');-->
199 <!--    console.log(bd); // HTMLCollection(3)[li.bd.item, li.bd, div.bd]-->
200 <!--    for (let item of bd) {-->
201 <!--        console.log(item);-->
202 <!--    }-->
203 <!--</script>-->
204 
205 <!--15.9 使用getElementById获取标签节点-->
206 <!--<div id="app">app</div>-->
207 
208 <!--<script>-->
209 <!--let app = document.getElementById('app');-->
210 <!--console.log(app); // <div id="app">app</div>-->
211 <!--</script>-->
212 
213 <!--15.10 使用getElementsByName与getElementsByTagName获取标签节点-->
214 <!--<div name="app">百度</div>-->
215 
216 <!--<script>-->
217 <!--    let app2 = document.getElementsByName('app');-->
218 <!--    console.log(app2); // NodeList[div]-->
219 <!--    let app1 = document.getElementsByTagName('div');-->
220 <!--    console.log(app1); // HTMLCollection[div, app: div]-->
221 <!--</script>-->
222 
223 </body>
224 </html>

 

posted @ 2022-09-28 20:19  云起时。  阅读(50)  评论(0编辑  收藏  举报