lucky出品 必属精品
DOM操作
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树
DOM树
[图片上传失败...(image-c84426-1632303994282)]
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。
- JavaScript 能够改变页面中的所有 HTML 元素
- JavaScript 能够改变页面中的所有 HTML 属性
- JavaScript 能够改变页面中的所有 CSS 样式
- JavaScript 能够对页面中的所有事件做出反应
一、查找 HTML 元素
通常,通过 JavaScript,您需要操作 HTML 元素。
为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:
- 通过 id 找到 HTML 元素
- 通过标签名找到 HTML 元素
- 通过类名找到 HTML 元素
1、通过 id 查找 HTML 元素
在 DOM 中查找 HTML 元素的最简单的方法,是通过使用元素的 id。
本例查找 id="intro" 元素:
实例
var x=document.getElementById("intro");
如果找到该元素,则该方法将以对象(在 x 中)的形式返回该元素。
如果未找到该元素,则 x 将包含 null
2、通过标签名查找 HTML 元素
本例查找 id="main" 的元素,然后查找 id="main" 元素中的所有
元素:
实例
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");
通过类名找到 HTML 元素
本例通过 getElementsByClassName 函数来查找 class="intro" 的元素:
实例
var x=document.getElementsByClassName("intro");
二、HTML DOM - 改变 HTML
1、改变 HTML 内容(innerHTML/innerText)
修改 HTML 内容的最简单的方法是使用 innerHTML 属性。
如需改变 HTML 元素的内容,请使用这个语法:
document.getElementById(id).innerHTML=新的 HTML
本例改变了
元素的内容:
实例
Hello World!
实例讲解:
- 上面的 HTML 文档含有 id="p1" 的
元素
- 我们使用 HTML DOM 来获得 id="p1" 的元素
- JavaScript 更改此元素的内容 (innerHTML)
document.getElementById(id).innerText=新的文本内容
注意:
- innerHTML是可以获取节点内 标签和内容
- innerText 只能获取节点内的文本内容
- innerHTML可以设置html和文本一起的内容 HTML标签会被浏览器所解析
- innerText不可以设置html和文本一起的内容 HTML标签不会被浏览器所解析
2、改变 HTML 属性 (attribute)
如需改变 HTML 元素的属性,请使用这个语法:
document.getElementById(id).attribute=新属性值
本例改变了 元素的 src 属性:
注意:在jQuery里不能改变input的type类型 出于安全性,只能是只读 如更改input的type
- js设置密码的显示隐藏
function pas(){
var i = document.getElementsByTagName('input')[0];
i.type = 'password'
}
function text(){
var i = document.getElementsByTagName('input')[0];
i.type = 'text'
}
script>
function change() {
var input = document.getElementsByTagName('input')[0];
var span = document.getElementsByTagName('span')[0];
if(span.innerHTML == '显示'){
input.type = 'text';
span.innerHTML = '隐藏';
}else{
input.type = 'password';
span.innerHTML = '显示';
}
}
密码显示
三 HTML DOM - 改变CSS
HTML DOM 允许 JavaScript 改变 HTML 元素的样式。
1、改变 HTML 样式 (style.property)
如需改变 HTML 元素的样式,请使用这个语法:
document.getElementById(id).style.property=新样式
实例
Hello World!
Hello World!
以上段落通过脚本修改。
-
获取生效style样式
window.getComputedStyle("元素", "伪类");
style = window.getComputedStyle(box, null); //支持IE9+及非IE浏览器
style = window.getComputedStyle(box, null).width;
获取box的width属性值-
和style区别
box.style.xxx 只能获取内联样式
getComputedStyle 获取的生效样式可以获取全局的样式
实例
-