首页 > 其他分享 >js之DOM

js之DOM

时间:2024-03-04 17:46:05浏览次数:22  
标签:DOM 对象 js var document 节点 属性

1.DOM (Document Object Model)文档对象模型

js中对象的分类有三种:

  • 用户定义对象
  • 内建对象 Array Date Math等
  • 宿主对象(由浏览器创建的对象)

model map

可以将DOM看成一棵“树”。DOM 把文档看做一棵家谱树,parent、child、sibling等。

2.DOM中的节点

  1. 元素节点 element node 
  2. 文本节点 text  node 没有内容的文档没有任何价值,而大多数内容都是由文本提供
  3. 属性节点 attribute node 比如<p title='xxx' id='xx'> 这里的title什么的

2.1获取元素节点的方式

  • document.getElementById() 单个对象,最后结果是个Object
  • document.getElementsByTagName 多个对象,最后结果是个HTMLCollection,集合,有点像数组push
  • document.getElementsByClassName 过个对象,最后结果是个HTMLCollection,集合
    <ul id="classlist">
        <li class="item">js</li>
        <li class="item">css</li>
        <li>DOM</li>
    </ul>
    <script>
        // 1.document.getElementById() 单个对象,最后结果是个Object
        var eleNode = document.getElementById('classlist') // 获取出来是个对象哦,object
        // 2.document.getElementsByTagName 多个对象,最后结果是个HTMLCollection,集合,有点像数组push
        var objList = document.getElementsByTagName('ul')
        // 3.document.getElementsByClassName 过个对象,最后结果是个HTMLCollection,集合
        var oItems = document.getElementsByClassName('item')
    </script>

2.2 setAttribute()和getAttribute()方法

<head>
/// .......
    <style type="text/css">
        #box{
            color: red;
        }
    </style>
</head>

<body>
    <p tilt="未设置的"> 嗨嗨嗨 </p>
    <script>
        var oP = document.getElementsByTagName('p')[0];
        // 获取属性值xx.getAttribute,有一个必须的参数,这个节点对象的名字
        var title = oP.getAttribute('title');
        // 设置属性值xx.setAttribute(name,value),两个参数
        oP.setAttribute('id','box')
        // 注意:DOM工作方法:先静态加载文档的内容,再动态刷新DOM,动态刷新不会影响静态内容,加了这个id,也看不出来加了
        cosole.log(title)

    </script>
</body>

2.3 节点对象的单个重要属性介绍

  1. nodeName 节点名称
  2. nodeValue 节点的值
  3. nodeType 节点的类型

nodeName属性:节点的名称,是只读

  • 元素节点的nodeName与标签名相同
  • 属性节点的nodeName与属性的名称相同
  • 文本节点的nodeName永远是#text
  • 文档节点的nodeValue永远是#document

nodeValue属性:节点的值

  • 元素节点的nodeValue是undefined或null
  • 属性节点的nodeValue是属性的值
  • 文本节点的nodeValue是文本自身

nodeType属性:节点的类型,是只读的(以下是几个常用的)

  • 元素:节点类型是1
  • 属性:2
  • 文本:3
  • 注释:8
  • 文档:9

2.4 节点对象的常用属性

2.5 节点基本属性在各浏览器兼容性处理

2.6元素节点对象的增删改查方法

动态操作节点 

  • 创建节点 createElement()
  • 插入节点 appendChild()    insertBefore(newNode,node)
  • 删除节点 removeChild()
  • 替换节点 replaceChild(newNode,node)
  • 创建文本节点 createTextNode()

3.样式设置

方法1(不推荐):

<body>
    <p id="box">llll</p>

    <script type="text/javascript">
        var para = document.getElementById("box");
        console.log(para.style)
        para.style.color = 'white';
        para.style.backgroundColor = 'red';
        para.style.width='200px'
    </script>
</body>

方法2:通过控制属性类名控制样式

<head>
    <meta charset="utf-8">
    <title>动态操作样式</title>
    <style type="text/css">
        .highlight{
            background-color: red;
            color: white;
            width: 250px;
            height: 250px;
            text-align: center;
            font-size: 30px;
        }

    </style>
</head>
<body>
    <p id="box">llll</p>

    <script type="text/javascript">
        var para = document.getElementById("box");
        para.setAttribute("class","highlight")
    </script>
</body>

4.事件介绍

4.1 onclick事件

4.2 鼠标悬停事件

4.3 光标聚焦和失焦事件

4.4 表单控件上内容选中和改变事件

4.5 窗口加载事件

 

标签:DOM,对象,js,var,document,节点,属性
From: https://www.cnblogs.com/isayruby/p/18051181

相关文章

  • vite+vue3 遇到报错 Uncaught SyntaxError: Cannot use import statement outside a m
    按照报错找到了对应的位置import{createApp}from'/node_modules/.vite/deps/vue.js?v=d0a669cf'importAppfrom'/src/pages/project1/App.vue'//import'./index.css'//importrouterfrom"./router"//createApp(App).mount(&#......
  • 接口测试-json文件读取报java.lang.ClassCastException: java.util.LinkedHashMap can
    问题原因:从json文件中读取的信息为hashMap,与预期(类对象)格式不匹配,无法解析。问题分析:json文件包含一个json串列表,代表向接口中传递不同的参数组合,通过下面方法读取json文件信息,反序列化成类对象,并把这些赋值的对象进行接口请求参数进行传递。publicList<T>getReadValuesLi......
  • Nestjs系列 Nestjs中的AOP架构
    什么是AOPSpringboot中就存在AOP切面编程。在Nest中也同样提供了该能力。通常,一个请求过来,可能会经过Controller(控制器)、Service(服务)、DataBase(数据库访问)的逻辑。在这个流程中,若想要添加一些通用的逻辑,比如日志记录、权限控制、异常处理等作为一个通用的逻辑。AOP的......
  • 【个人前端笔记】Node.js技术架构
    一:node.js不是什么1.node.js不是web框架或后端框架所以你不能把Node.js与Flask或Spring对比2.node.js不是编程语言node.js并不是后端的JS,它只是以.js做后缀的所以你不能把Node.js与Python或PHP对比二:node.js是什么1.node.js是一个平台它将多种技术组合起来让Javascript也......
  • dom 元素的查找方式
    JavaScript提供了多种方法可以在DOM(文档对象模型)结构中查找元素,以下是一些常见的方法:1.`getElementById(id)`:通过元素的id属性查找元素。每个id在一个页面中应是唯一的,所以这个方法总是返回单个元素(或null,如果没有找到元素)。2.`getElementsByClassName(className)`:......
  • three.js导出场景内模型为glb,gltf
    使用three,导出当前场景内指定模型为glb,或者gltf格式import{GLTFExporter}from'three/examples/jsm/exporters/GLTFExporter.js'//导出模型为GLTFpublicexportGLTFModel(){letcurrSelectObj:THREE.Object3D=SMART.scene.children[2];//需要导......
  • JSON.parse解析字符串报错-SyntaxError: Unexpected token ‘ in JSON at position 报
    “SyntaxError:Unexpectedtoken’inJSONatposition”报错原因是因为解析的字符串对象中,JSON.parse无法识别;JSON.parse可以将标准的json类型数据转换为JavaScript对象,如果数据不是正确的json类型的数据则会控制台报错,可能会阻断代码的正常运行我们可以写一个函数来......
  • nodejs安装、编译、执行 & npm 使用
    前言全局说明nodejs安装&npm使用nodejs是一个解释器,只是它运行再后端,在命令行看到执行结果;如果用html+js写的页面用浏览器打开,那就是可以在前台看到js执行结果。一、官网官网:https://nodejs.org/文档:https://nodejs.org/en/docs/中文网:http://nodejs.cn/GitHub......
  • 【JS逆向百例】某词霸翻译逆向分析
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • js页面当中没有写回车事件,但是有回车效果
    前两天遇到一个问题,研究了我很差事件。问题如下:页面只有一个文本框,没有写任何回车事件,但是点回车的时候,就会触发回车,回传页面。于是各种google,终于有了结果:如果表单里有一个type=”submit”的按钮,回车键生效。如果 表单里只有一个type=”text”的input,不管按钮是什么type,回......