JavaScript
JavaScript是一种广泛用于网页开发的脚本语言,可在浏览器中运行,也可通过Node.js在服务器端运行。
<script> console.log("Hello, JavaScript!"); </script>
- 外链式:通过
src属性引入外部.js文件
<script src="script.js"></script>
- 行内式:直接写在 HTML 标签的事件属性中(不推荐)
<button onclick="alert('Hi')">点击</button>
2. 变量与数据类型
let age = 20; const name = "Alice"; var isStudent = true; // 不推荐
// 转为字符串 String(123); // "123" 123 + ""; // "123" // 转为数字 Number("123"); // 123 parseInt("123abc"); // 123 parseFloat("3.14"); // 3.14
// const 示例 const num = 10; // num = 20; // 这行代码会报错,因为 const 声明的常量不能重新赋值 // let 示例 let count = 5; count = 15; // 可以重新赋值 // var 示例 var name = 'John'; name = 'Jane'; // 可以重新赋值 if (true) { let blockVar = 'block scoped with let'; var functionVar = 'function scoped with var'; } // console.log(blockVar); // 报错,let 具有块级作用域 console.log(functionVar); // 可以访问,var 没有块级作用域
let result = 5 > 3 ? "大于" : "小于"; // "大于"
if (age > 18) { console.log("成年"); } else if (age === 18) { console.log("刚成年"); } else { console.log("未成年"); }
- 循环语句:
// for 循环 for (let i = 0; i < 5; i++) { console.log(i); } // while 循环 let j = 0; while (j < 5) { console.log(j); j++; } // for...of(遍历数组/字符串) const arr = [1, 2, 3]; for (const item of arr) { console.log(item); }
const arr = [1, 2, 3]; const arr2 = new Array(4, 5, 6);
const numbers = [1, 2, 3, 4]; const doubled = numbers.map(n => n * 2); // [2,4,6,8] const even = numbers.filter(n => n % 2 === 0); // [2,4]
const person = { name: "Bob", age: 25, sayHi: function() { console.log("Hi"); } };
- 访问属性:
person.name; // "Bob" person["age"]; // 25
- 遍历对象:
for (const key in person) { console.log(key + ": " + person[key]); }
// 函数声明 function add(a, b) { return a + b; } // 函数表达式 const multiply = function(a, b) { return a * b; }; // 箭头函数(ES6+) const divide = (a, b) => a / b; // 调用 console.log(add(2, 3)); // 5
默认参数:
function greet(name = "Guest") { console.log("Hello, " + name); } greet(); // "Hello, Guest"
剩余参数:
function sum(...numbers) { return numbers.reduce((total, num) => total + num, 0); } sum(1, 2, 3); // 6
1. 获取元素document
document 属于全局对象,代表整个 HTML 文档。是 DOM(文档对象模型)的根节点。通过 document 对象,你可以访问和操作网页中的所有元素(如 <div>、<p>、<button> 等)、属性、文本内容等。能够对 HTML 文档的内容、结构和样式进行访问与修改。
2.getElementById
这是 document 对象的一个方法,用于 通过 HTML 元素的 id 属性获取唯一元素 的 DOM 方法。根据指定的 id 值,从当前文档中查找并返回对应的唯一元素。由于 HTML 规范中要求 id 在整个文档中是唯一的(不能重复),因此该方法只会返回 一个元素(如果找到),或 null(如果未找到)。
document.getElementById(idValue);
示例:HTML结构
<div id="header">这是头部</div> <p id="content">这是内容</p> <button id="submitBtn">提交</button>
JavaScript代码
// 获取 id 为 "content" 的元素 const contentElement = document.getElementById("content"); console.log(contentElement); // 输出 <p id="content">这是内容</p> // 操作获取到的元素(例如修改内容) contentElement.textContent = "修改后的内容"; // 尝试获取不存在的 id,返回 null const nonExistent = document.getElementById("none"); console.log(nonExistent); // 输出 null
例如,以下代码与 getElementById("submitBtn") 效果相同,但 getElementById 更简洁高效:
// 等效但不推荐的写法 document.querySelector("#submitBtn"); // 通过 CSS 选择器 #id 查找
3.getElementsByClassName
通过类名获取 HTML 元素 的 DOM 方法。根据指定的 CSS 类名,从文档中查找并返回所有包含该类名的元素集合。
document.getElementsByClassName(className); // 或在某个父元素内查找 parentElement.getElementsByClassName(className);
示例:HTML结构
<div class="box">盒子1</div> <div class="box">盒子2</div> <div class="box active">盒子3(激活)</div> <p class="text">文本</p>
JavaScript代码
// 1. 获取整个文档中所有 class 为 "box" 的元素 const boxes = document.getElementsByClassName("box"); console.log(boxes.length); // 输出:3(3个含 "box" 类的元素) // 2. 遍历集合(需用索引访问,类似数组) for (let i = 0; i < boxes.length; i++) { console.log(boxes[i].textContent); // 依次输出:盒子1、盒子2、盒子3(激活) } // 3. 在特定父元素内查找(假设页面有个 id 为 "container" 的容器) const container = document.getElementById("container"); const activeItems = container.getElementsByClassName("active"); // 只查找 container 内部 class 为 "active" 的元素 // 4. 多类名匹配(同时包含 "box" 和 "active" 的元素) const activeBoxes = document.getElementsByClassName("box active"); console.log(activeBoxes.length); // 输出:1(仅盒子3匹配)
例如,用 querySelectorAll 实现类似功能:
const boxes = document.querySelectorAll(".box"); // 静态集合,不动态更新
4.getElementsByTagName
用于 通过 HTML 标签名获取元素 的 DOM 方法。根据指定的 HTML 标签名称(如 div、p、img 等),从文档或指定父元素中查找并返回所有匹配该标签的元素集合。
// 从整个文档中查找 document.getElementsByTagName(tagName); // 从指定父元素内查找(缩小范围) parentElement.getElementsByTagName(tagName);
示例:HTML结构
<div>盒子1</div> <p>段落1</p> <div>盒子2</div> <p>段落2</p> <ul> <li>列表项1</li> <li>列表项2</li> </ul>
JavaScript代码
// 1. 获取整个文档中所有 <div> 标签的元素 const divs = document.getElementsByTagName("div"); console.log(divs.length); // 输出:2(2个 div 元素) // 2. 遍历集合(通过索引访问) for (let i = 0; i < divs.length; i++) { console.log(divs[i].textContent); // 依次输出:盒子1、盒子2 } // 3. 在指定父元素内查找(例如只找 <ul> 中的 <li>) const ul = document.getElementsByTagName("ul")[0]; // 先获取 ul 元素 const lis = ul.getElementsByTagName("li"); console.log(lis.length); // 输出:2(ul 内的 2 个 li 元素) // 4. 不区分大小写(查找 <P> 等效于 <p>) const paragraphs = document.getElementsByTagName("P"); console.log(paragraphs.length); // 输出:2(2个 p 元素)
const allElements = document.getElementsByTagName("*");
通过 CSS 选择器语法获取元素 的 DOM 方法,它能根据灵活的选择器规则,从文档或指定父元素中查找并返回 第一个匹配的元素。
支持使用各种 CSS 选择器(如类选择器、ID 选择器、标签选择器、后代选择器等)来定位元素,是获取元素的 “万能工具”,尤其适合复杂条件的查找。
// 从整个文档中查找第一个匹配的元素 document.querySelector(selector); // 从指定父元素内查找第一个匹配的元素 parentElement.querySelector(selector);
示例:HTML结构
<div class="box">盒子1</div> <div class="box highlight">盒子2(高亮)</div> <p id="intro">介绍文本</p> <ul> <li class="item">项目1</li> <li class="item">项目2</li> </ul>
JavaScript代码
// 1. 通过 ID 选择器(#id)获取元素(等效于 getElementById) const intro = document.querySelector("#intro"); console.log(intro.textContent); // 输出:介绍文本 // 2. 通过类选择器(.class)获取第一个匹配元素 const firstBox = document.querySelector(".box"); console.log(firstBox.textContent); // 输出:盒子1 // 3. 通过标签选择器获取元素 const firstLi = document.querySelector("li"); console.log(firstLi.textContent); // 输出:项目1 // 4. 复杂选择器(后代选择器 + 类选择器) // 查找 ul 中 class 为 item 的第一个元素 const ulItem = document.querySelector("ul .item"); console.log(ulItem.textContent); // 输出:项目1 // 5. 在指定父元素内查找(如只在 .highlight 元素内查找) const highlightBox = document.querySelector(".highlight"); const nested = highlightBox.querySelector("span"); // 假设 .highlight 内有 span
// 查找 name 属性为 "email" 的 input 元素 const emailInput = document.querySelector('input[name="email"]');
const allLis = document.querySelectorAll("li"); // 返回所有 li 的集合
总结:querySelector 是获取元素的高效且灵活的方法,尤其适合需要复杂选择逻辑的场景,是实际开发中常用的 DOM 操作工具

浙公网安备 33010602011771号