JavaScript DOM基础

1. 基本概念

文档对象模型(Document Object Model, 简称DOM),是W3C组织推荐的处理可扩展标记语言(HTML或XML)的标准编程接口。可以改变页面的内容结构和样式。

DOM 里面的专有名词

DOM 树

在这里插入图片描述

  1. 文档 :一个页面就是一个文档,在DOM中用document表示
  2. 元素:页面中的所有标签都是元素,DOM中使用element表示
  3. 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM中使用node表示
    DOM 把以上内容都看做对象

2. 获取页面元素

DOM在实际开发中主要用来操作元素

1. 根据ID获取元素

使用getElementById()方法获取

<div id="time">2022-3-10</div>
<script>
    // 1.因为页面文档从上往下加载,所以得先有标签,所以script要写到标签的下面
    // 2.参数 id 是大小写敏感的字符串
    var timer = document.getElementById('time');
    console.log(timer, typeof timer); // 3. 返回的是元素对象
    // 4.console.dir 打印我们返回的元素对象 更好的查看里面的属性和方法
    console.dir(timer);
</script>
2. 根据标签名获取

使用 getElementsByTagName()方法可以返回带有指定标签名的对象的集合

// 1. 返回的是 获取过来的元素对象的集合 以伪数组的形式存储的
var lis = document.getElementsByTagName('li');
console.log(lis);
console.log(lis[2]); //<li>hhhhhhhhh3</li>
// 2.采取遍历 依次打印里面的元素对象
for(var i = 0; i < lis.length; i++){
   
    console.log(lis[i]);
}
  • 返回的是 获取过来的元素对象的集合 以伪数组的形式存储的
  • 页面只有一个li或者没有li返回的依旧是伪数组形式
  • element.getElementsByTagName(‘标签名’) 可以获取某个元素(父元素)内部所有指定标签名的子元素。 注意:父元素 必须是单个对象,获取的时候不包括父元素自己
var ol = document.getElementsByTagName('ol');
console.log(ol[0].getElementsByTagName('li')); //注意获取单个父元素ol[0] (即使只有一个ol也要这么写,因为是伪数组)
// 常用写法 给ol加id
var ol = document.getElementById('ol');
console.log(ol.getElementsByTagName('li'));
3. 根据H5新增的方法获取

H5新增:只兼容ie9以上

  1. getElementsByClassName()根据类名获取元素集合
// 返回的是伪数组 getElementsByClassName
var boxs = document.getElementsByClassName('box');
console.log(boxs);  
  1. querySelector(‘选择器’) 根据指定选择器返回第一个元素对象(不分id标签类了,但里面的选择器要加对应符号)
// querySelector(‘选择器’) 根据指定选择器返回第一个元素对象(不分id标签类了)
var firstBox = document.querySelector('.box');
console.log(firstBox); 
var firstNav = document.querySelector('#nav');
console.log(firstNav);
  1. querySelectorAll(‘选择器’); 根据指定选择器返回对应的所有对象 也是伪数组
// querySelectorAll('选择器'); 根据指定选择器返回对应的所有对象
var allBox = document.querySelectorAll('.box');
console.log(allBox);  // 也是伪数组
4. 特殊元素获取(body,html)
  1. 获取body元素
    document.body 返回body对象
var bodyEle = document.body;
console.log(bodyEle);
  1. 获取HTML元素
    document.documentElement 返回html对象
var htmlEle = document.documentElement;
console.log(htmlEle);

3. 事件基础

JavaScript 使我们有能力创建动态页面,而事件是可以被JavaScript侦测到的行为
触发 – 响应机制
网页中的每个元素都可以产生某些可以触发JavaScript的事件,如,我们可以在用户点击某按钮时产生一个事件,然后去执行某些操作

事件三要素:事件源、事件类型、事件处理程序
执行事件的步骤

  1. 获取事件源
  2. 注册事件(绑定事件)
  3. 添加事件处理程序(采取函数赋值的方式)
<button id="btn">唐伯虎</button>
<div>123</div>
<script>
    // 点击div 控制台输出 我被选中了
    // 1. 获取事件源
    var divFirst = document.querySelector('div');  // 获取第一个div对象
    // 2. 注册(绑定)事件 divFirst.onclick  
    // 3. 添加事件处理程序  
    divFirst.onclick = function() {
    
        console.log('我被选中了');
    }
</script>

常见的鼠标事件
在这里插入图片描述

4.操作元素 (较核心)

1.改变元素内容

下面两个属性都是可读写的,可以获取里面的内容

  1. element.innerText : 从起始位置到终止位置的内容,但它去除html标签,同时空格和换行也会去除。 非标准

  2. element.innerHTML : 从起始位置到终止位置的全部内容,包括html标签,保留空格和换行,和innerText最大区别 :能识别html标签,推荐使用这个。 W3C标准。

<!-- innerText 和innerHTML区别 -->
<div></div>
<p>
    我是文字
    <span>123</span>
</p>
<script>
    // 1.innerText 不识别html标签
    var div = document.querySelector('div');
    div.innerText = '<strong>今天是:</strong> 2022年';
    // 可读写 获取元素里的内容 会去除标签 空格和换行
    var p = document.querySelector('p');
    console.log(p.innerText);
    // 2.innerHTML 识别HTML标签
    div.innerHTML = '<strong>今天是:</strong> 2022年';
    // 可读写 获取元素里的内容 保留标签 空格和换行
    console.log(p.innerHTML);
</script>

demo – 获取当前系统时间 结合函数

<button>显示当前系统时间</button>
<div>某个时间</div>
<script>
    // 点击按钮 div里面的文字发生变化 innerText
    var buttonFirst = document.querySelector
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《JavaScript DOM编程艺术》第二版是一本非常经典的前端开发书籍,由作者Jeremy Keith和Jeffrey Sambells合作编写而成。该书主要介绍了使用JavaScriptDOM技术进行网页开发的知识,涵盖了DOM操作、事件监听、表单验证、AJAX等内容。 本书首先讲解了DOM基础知识,包括节点、元素、属性、文本等概念,并介绍了通过JavaScriptDOM进行操作的方法。然后,通过实例讲解了如何根据用户的交互行为来实现动态效果,如当用户点击某个按钮时改变网页的背景色等。 此外,本书还介绍了如何利用AJAX技术进行异步数据交互,比如通过JavaScript动态加载内容等。同时,本书也提供了一些工具和技巧来提高网页的性能和用户体验,比如浏览器兼容性、缓存、图片优化等。 总之,《JavaScript DOM编程艺术》第二版是一本前端开发必读的书籍,可以帮助读者全面掌握JavaScriptDOM技术,在开发网页时提高效率和质量。而PDF版本的书籍更方便读者随时随地学习,建议前端开发人员可以认真阅读和应用到实践中。 ### 回答2: 《JavaScript DOM编程艺术第二版》是一本深入浅出的JavaScriptDOM编程入门书籍,适合初学者学习。 该书共有18章,从JavaScript基础语法和DOM结构开始讲起,一步步引导读者学习JavascriptDOM编程。其中介绍了文档对象模型(DOM)的概念、DOM节点、节点属性与操作等重要知识点,并通过实例和练习帮助读者更好地理解如何使用DOM进行网页设计和开发。此外,书中还介绍了如何使用JavaScript制作动态网页、表单验证、浏览器兼容性问题等实用的开发技巧,为读者提供了丰富的编程经验。 书中使用简洁易懂的语言,结合大量实例和练习,让读者可以快速掌握JavaScriptDOM的核心概念和编程技巧。作者还在书中提供了很多实战案例,让读者可以将所学的知识应用到实际开发中,并且让读者更好地理解如何进行项目开发。 总之,《JavaScript DOM编程艺术第二版》是一本不可多得的优秀JavaScriptDOM编程入门教材,读者只需要具备基本的JavaScript和HTML/CSS知识,即可轻松掌握书中内容,快速提高前端开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值