getElementByld()
方法可以获取带有 ID 的元素对象;var element = document.getElementById(id);
// 1.因为我们文档页面从上往下加载,所以先要有标签,所以 script 写到标签的下面
// 2.get 获得;element 元素;by 通过;使用驼峰命名法
//3.参数 id是大小写敏感的字符串
//4. 返回的是一个元素对象
var timer = document.getElementById("time");
console.log(timer);
console.log(typeof timer);
// 5. console.dir 打印我们返回的元素对象,更好的查看里面的属性和方法
console.dir(timer);
getElemeByTagName()
方法可以返回指定标签名的对象的集合var element = document.getElementsByTagName(标签名);
element.getElementsByTagName('标签名');
<ul>
<li>根据标签名获取1li>
<li>根据标签名获取2li>
<li>根据标签名获取3li>
<li>根据标签名获取4li>
<li>根据标签名获取5li>
ul>
<script>
//返回的是获取过来的元素对象的结合,以伪数组的形式存储的
var lis = document.getElementsByTagName('li');
console.log(lis);
console.log(lis[0]);
console.log('-------------');
//2. 我们想要依次打印里面的元素对象,我们可以采用遍历的方式
for (var i = 0; i < lis.length; i++) {
console.log(lis[i]);
}
//3. 如果页面中有一个 li,返回的还是伪数组的形式;
//4. 如果页面中没有这个元素返回的空的伪数组形式;
script>
//特定父元素下的全部标签
<ol id="ol">
<li>321123li>
<li>321123li>
<li>321123li>
<li>321123li>
<li>321123li>
ol>
<script>
var ol = document.getElementById('ol');
console.log(ol.getElementsByTagName('li'));
script>
document.getElementsByClassName('类名');
//根据类名返回元素对象集合document.querySelector('选择器');
//根据指定选择器返回第一个元素对象document.querySelectorAll('选择器');
//根据指定选择器返回<div class="box">盒子1div>
<div class="box">盒子2div>
<div id="nav">
<ul>
<li>首页li>
<li>产品li>
ul>
div>
<script>
//1. gerElementsByClassName 根据类名获得某些元素集合
var boxs = document.getElementsByClassName('box');
console.log(boxs);//HTMLCollection(2) [div.box, div.box]
// 2.querySelector 返回指定选择器的第一个元素对象
var firstbox = document.querySelector('.box');//属性选择器
console.log(firstbox);
var nav = document.querySelector('#nav');//ID 选择器
console.log(nav);
var li = document.querySelector('li');//标签选择器
console.log(li);
//3. querySelectorAll 返回指定选择器的所有元素对象集合
var allBox = document.querySelectorAll('.box');
console.log(allBox);
script>
<script>
var bodyEle = document.body;
console.log(bodyEle);
console.dir(bodyEle);
script>
```![在这里插入图片描述](https://img-blog.csdnimg.cn/5b97c9e4e2704e64b98dabcafc4a7fb9.png)
#### 获得 html 元素
```html
<script>
var htmlEle = document.documentElement;
console.log(htmlEle);
console.dir(htmlEle);
script>
<button id="btn">唐伯虎button>
<script>
btn.onclick = function() {
alert('点秋香');
}
script>
<div>123div>
<script>
//执行事件步骤
//点击 div ,控制台输出 我被选中了
//1. 获取事件源
var div = document.querySelector('div');
// 2. 绑定事件,注册事件
//div.onclick
// 3. 添加事件处理程序
div.onclick = function() {
console.log('我被选中了');
}
script>
鼠标事件 | 触发条件 |
---|---|
onclick | 鼠标点击左键触发 |
onmouseover | 鼠标经过触发 |
onmouseout | 鼠标离开触发 |
onfocus | 获得数表焦点触发 |
onbiur | 失去鼠标焦点触发 |
onmousemove | 鼠标移动触发 |
onmouseup | 鼠标弹起触发 |
onmousedown | 鼠标按下触发 |
下拉菜单三要素
关闭广告三要素
element(元素).innerText
element.innerHTML
<button>显示当前系统时间button>
<div>时间div>
<p>123p>
<script>
//产生效果:当我们点击按钮之后,div里面的文字发生变化
//1. 获取元素
var btn = document.querySelector('button');
var div = document.querySelector('div');
//2, 注册事件
btn.onclick = function() {
div.innerText = '2023-4-23';
}
//元素也可以不用添加事件
var p = document.querySelector('p');
p.innerText = '今天周日';
script>
innerText
和innerHTML
的区别 <div class="div1">div>
<div class="div2">div>
<p class="p1">
我是 p 标签
<span>我是spanspan>
p>
<p class="p2">
我是 p 标签
<span>我是spanspan>
p>
<script>
var divHTML = document.querySelector('.div1');
divHTML.innerHTML = '今天是:2023';
var divText = document.querySelector('.div2');
divText.innerText = '今天是:2023';
var pHTML = document.querySelector('.p1');
console.log(pHTML.innerHTML);
var pText = document.querySelector('.p2');
console.log(pText.innerText);
script>
innerText
、innerHTML
改变元素内容;src
、herf
id
、alt
、title
照片切换案例
<button id="pic1">photo 1button>
<button id="pic2">photo 2button>
<img src="image/picture1.png" alt="">
<script>
//修改元素属性 src
//1. 获取元素
var pic1 = document.getElementById('pic1');
var pic2 = document.getElementById('pic2');
var img = document.querySelector('img');
//2. 注册事件 处理程序
pic2.onclick = function() {
img.src = 'image/picture2.png';
}
pic1.onclick = function() {
img.src = 'image/picture1.png';
}
script>
分时显示不同图片,显示不同的问候语
<img src="image/picture1.png" alt="">
<div>上午好div>
<script>
//1. 根据系统不同时间来判断,所以需要用到日期内置对象
//2. 利用多分支语句来设置不同的图片
//3. 需要一个图片。来根据不同的时间修改图片
//4. 需要一个 div 元素,显示不同的问候语,修改元素内容即可
//1. 获取元素
var img = document.querySelector('img');
var div = document.querySelector('div');
//2. 得到当前的小时数
var date = new Date();
var h = date.getHours();
//3. 判断小时数改变图片和文字信息
if (h < 12){
img.src = 'image/picture2.png';
div.innerHTML = '上午好';
} else if (h < 18) {
img.src = 'image/picture3.png';
div.innerHTML = '下午好';
} else {
img.src = 'image/picture4.png';
div.innerHTML = '晚上好';
}
script>
利用 DOM 可以操作如下表单属性:
type
、value
、selected
、checked
、disabled
<button>按钮button>
<input type="text" value="输入内容">
<script>
//1. 输入内容
var btn = document.querySelector('button');
var input = document.querySelector('input');
//2. 注册事件 处理程序
btn.onclick = function(){
//input.innerHTML = '点击了'; 这个是 普通盒子,比如 div 标签里面的内容;
//表单里面的值、文字内容是通过 value 来修改的
input.value = '被点击了';
//如果想要某个表单被禁用,不能再被点击,我们要使用 disabled 按钮来使得 button 按钮禁用
// btn.disabled = ture;
this.disabled = ture;
// this 指向的是时间函数的调用者
}
script>
我们可以通过 JS 来修改元素的大小、颜色、位置等样式;
1
element.style
行内样式操作——适用于样式比较少,功能简单的情况下用;
2.element.className
类名样式操作——适用于样式较多,功能相对复杂的情况
注意:
1.JS 里面的样式采用驼峰命名法
2. JS 修改 style 样式操作,产生的是行内样式,权重比 CSS高
3. 如果样式修改较多,可以采取操作类名的方式更改元素样式
4. class 因为是个关键字,因此使用 className 来操作元素类名属性
3. className 会直接修改元素的类名,会覆盖原先的类名
element 属性
获取属性值;
div.getAttribute('属性');
区别
element 属性
获取内置属性值(元素本身自带的属性);div.getAttribute('属性');
主要获得自定义的属性(标准)我们程序员自定义的属性;element. 属性 = '值'
设置内置属性值element.setAttribute('属性','值');
主要针对自定义属性 <div id="demo" index="1">div>
<script>
// `element. 属性 = '值'` 设置内置属性值
div.id = 'text';
// `element.setAttribute('属性','值'); `
div.setAttribute('index',2);
script>
element.removeAttribute('属性');
<div id="demo" index="1">div>
<script>
div.removeAttribute('index');
script>
自定义属性目的:是为了保存并且使用数据,有些数据可以保存到页面中而不用保存到数据库中;
自定义属性获取是通过getAttribute('属性')
获取;
但是有些属性容易引起歧义,不容易判断是元素的内置属性还是自定义属性。
H5 给我们增添了新的属性:
H5 规定自定义属性 data-
开头作为属性名并且赋值。
比如
或者使用 JS 设置
element.setAttribute('data-index', 2)
element.getAttribute('data-index')
console.log(div.getAttribute('data-list-name'));
console.log(div.dataset.listName);
获取元素的两种方式:
1. 利用 DOM 提供的方法获取元素
document.getElementById()
document.getElementsByTagName()
document.querySelector
等
逻辑性不强,繁琐