JavaScript DOM

JavaScript的DOM(JS) 目录 1.DOM概述 2.获取HTML元素 3.修改HTML 4 修改CSS样式 5.元素操作 6.DOM事件 7.EvenListener监听事件 1.DOM概述 通过 HTML DOM,使用 JavaScript访问 HTML 文档的所有元素。 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。 HTML DOM 模型被构造为对... 阅读详情

第四章 JavaScript DOM

4.1、DOM概述

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

HTML DOM 模型被结构化为 对象树 :
在这里插入图片描述
HTML DOM 是关于如何获取、更改、添加或删除 HTML 元素的标准。

4.2、DOM文档节点

4.2.1、节点概述

节点Node,是构成我们网页的最基本的组成部分,网页中的每一个部分都可以称为是一个节点。

常用节点分为四类:

  1. 文档节点:整个HTML文档
  2. 元素节点:HTML文档中的HTML标签
  3. 属性节点:元素的属性
  4. 文本节点:HTML标签中的文本内容
    在这里插入图片描述

4.2.2、节点属性

在这里插入图片描述

4.2.3、文档节点

文档节点(Document)代表的是整个HTML文 档,网页中的所有节点都是它的子节点。

document对象是作为window对象的属性存在的,我们不用获取可以直接使用。

4.2.4、元素节点

HTML中的各种标签都是元素节点(Element),这也是我们最常用的一个节点。

浏览器会将页面中所有的标签都转换为一个元素节点, 我们可以通过document的方法来获取元素节点。

4.2.5、属性节点

属性节点(Attribute)表示的是标签中的一个一个的属性,这里要注意的是属性节点并非是元素节点的子节点,而是元素节点的一部分。可以通过元素节点来获取指定的属性节点。

注意:我们一般不使用属性节点。

4.2.6、文本节点

文本节点(Text)表示的是HTML标签以外的文本内容,任意非HTML的文本都是文本节点,它包括可以字面解释的纯文本内容。文本节点一般是作为元素节点的子节点存在的。

获取文本节点时,一般先要获取元素节点,再通过元素节点获取文本节点。

例如:元素节点.firstChild;,获取元素节点的第一个子节点,一般为文本节点。

4.3、DOM文档操作

文档对象代表您的网页,,如果您希望访问 HTML 页面中的任何元素,那么您总是从访问 document 对象开始。

4.3.1、查找 HTML 元素

方法描述
document.getElementById(id)通过元素 id 来查找元素。
document.getElementsByTagName(name)通过标签名来查找元素。
document.getElementsByClassName(name)通过类名来查找元素。
document.querySelector(CSS选择器)通过CSS选择器选择一个元素。
document.querySelectorAll(CSS选择器)通过CSS选择器选择多个元素。

4.3.2、获取 HTML 的值

方法描述
元素节点.innerText获取 HTML 元素的 inner Text。
元素节点.innerHTML获取 HTML 元素的 inner HTML。
元素节点.属性获取 HTML 元素的属性值。
元素节点.getAttribute(attribute)获取 HTML 元素的属性值。
元素节点.style.样式获取 HTML 元素的行内样式值。
<div style="width: 100px;height: 100px;background: red;" id="box">这是一个<strong>盒子</strong></div>


<script>
    var box = document.getElementById("box");

    console.log(box.innerText);
    console.log(box.innerHTML);
    console.log(box.id);
    console.log(box.getAttribute('id'));
    console.log(box.style.width);
</script>

在这里插入图片描述

注意:如果CSS的样式名中含有-,这种名称在JS中是不合法的比如background-color,需要将这种样式名修改为驼峰命名法,去掉-,然后将-后的字母大写,我们通过style属性设置的样式都是行内样式,同样的获取也是行内样式,而行内样式有较高的优先级,所以通过JS修改的样式往往会立即显示,但是如果在样式中写了!important,则此时样式会有最高的优先级,即使通过JS也不能覆盖该样式,此时将会导致JS修改样式失效,所以尽量不要为样式添加!important

拓展知识1:

通过style属性设置和读取的都是内联样式,无法读取样式表中的样式或者说正在应用的样式,如果想要读取当前正在应用的样式属性我们可以使用元素.currentStyle.样式名来获取元素的当前显示的样式,它可以用来读取当前元素正在显示的样式,如果当前元素没有设置该样式,则获取它的默认值;

但是currentStyle只有IE浏览器支持,其它的浏览器都不支持,在其它浏览器中可以使用getComputedStyle()这个方法来获取元素当前的样式,这个方法是window的方法,可以直接使用,但是需要两个参数:

  • 第一个参数:要获取样式的元素
  • 第二个参数:可以传递一个伪元素,一般都传null

该方法会返回一个对象,对象中封装了当前元素对应的样式,可以通过 对象.样式名 来读取样式,如果获取的样式没有设置,则会获取到真实的值,而不是默认值,比如:没有设置width,它不会获取到auto,而是一个长度,但是该方法不支持IE8及以下的浏览器。

通过currentStyle和getComputedStyle()读取到的样式都是只读的,不能修改,如果要修改必须通过style属性,因此,我们可以写一个适配各个浏览器的读取元素样式的方法:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        /*样式表的样式*/
        #box {
            width: 200px;
            height: 200px;
            background-color: green;
        }
    </style>
</head>

<body>
<div style="width: 100px;height: 100px;" id="box"></div>

<script>
    /*通用的获取元素样式的方法*/
    function getStyle(obj, name) {
        if (window.getComputedStyle) {
            //正常浏览器的方式,具有getComputedStyle()方法
            return getComputedStyle(obj, null)[name];
        } else {
            //IE8的方式,没有getComputedStyle()方法
            return obj.currentStyle[name];
        }
    }

    var box = document.getElementById("box");

    console.log(getStyle(box, "width"));    //100px
    console.log(getStyle(box, "height"));    //100px
    console.log(getStyle(box, "background-color"));    //rgb(0, 128, 0)
</script>
</body>
</html>

4.3.3、改变 HTML 的值

方法描述
元素节点.innerText = new text content改变元素的 inner Text。
元素节点.innerHTML = new html content改变元素的 inner HTML。
元素节点.属性 = new value改变 HTML 元素的属性值。
元素节点.setAttribute(attribute, value)改变 HTML 元素的属性值。
元素节点.style.样式 = new style改变 HTML 元素的行内样式值。

拓展知识1:

修改节点的内容除了常用的innerHTML和innerText之外,还有insertAdjacentHTML和insertAdjacentText方法,可以在指定的地方插入内容。insertAdjacentText方法与insertAdjacentHTML方法类似,只不过是插入纯文本,参数相同。

语法说明:

object.insertAdjacentHTML(where,html);
object.insertAdjacentText(where,text)

参数说明:

where:

  • beforeBegin:插入到开始标签的前面
  • beforeEnd:插入到结束标签的前面
  • afterBegin:插入到开始标签的后面
  • afterEnd:插入到结束标签的后面

在这里插入图片描述

注意事项:

  • 这两个方法必须等文档加载好后才能执行,否则会出错。
  • insertAdjacentText只能插入普通文本,insertAdjacentHTML插入html代码。
  • 使用insertAdjacentHTML方法插入script脚本文件时,必须在script元素上定义defer属性。
  • 使用insertAdjacentHTML方法插入html代码后,页面上的元素集合将发生变化。
  • insertAdjacentHTML方法不适用于单个的空的元素标签(如img,input等)。

4.3.4、修改 HTML 元素

方法描述
document.createElement(element)创建 HTML 元素节点。
document.createAttribute(attribute)创建 HTML 属性节点。
document.createTextNode(text)创建 HTML 文本节点。
元素节点.removeChild(element)删除 HTML 元素。
元素节点.appendChild(element)添加 HTML 元素。
元素节点.replaceChild(element)替换 HTML 元素。
元素节点.insertBefore(element)在指定的子节点前面插入新的子节点。

4.3.5、查找 HTML 父子

方法描述
元素节点.parentNode返回元素的父节点。
元素节点.parentElement返回元素的父元素。
元素节点.childNodes返回元素的一个子节点的数组(包含空白文本Text节点)。
元素节点.children返回元素的一个子元素的集合(不包含空白文本Text节点)。
元素节点.firstChild返回元素的第一个子节点(包含空白文本Text节点)。
元素节点.firstElementChild返回元素的第一个子元素(不包含空白文本Text节点)。
元素节点.lastChild返回元素的最后一个子节点(包含空白文本Text节点)。
元素节点.lastElementChild返回元素的最后一个子元素(不包含空白文本Text节点)。
元素节点.previousSibling返回某个元素紧接之前节点(包含空白文本Text节点)。
元素节点.previousElementSibling返回指定元素的前一个兄弟元素(相同节点树层中的前一个元素节点)。
元素节点.nextSibling返回某个元素紧接之后节点(包含空白文本Text节点)。
元素节点.nextElementSibling返回指定元素的后一个兄弟元素(相同节点树层中的下一个元素节点)。

4.4、DOM文档事件

4.4.1、事件概述

HTML事件可以触发浏览器中的行为,比方说当用户点击某个 HTML 元素时启动一段 JavaScript。

4.4.2、窗口事件

由窗口触发该事件 (同样适用于 标签):

属性描述
onblur当窗口失去焦点时运行脚本。
onfocus当窗口获得焦点时运行脚本。
onload当文档加载之后运行脚本。
onresize当调整窗口大小时运行脚本。
onstorage当 Web Storage 区域更新时(存储空间中的数据发生变化时)运行脚本。

4.4.3、表单事件

表单事件在HTML表单中触发 (适用于所有 HTML 元素,但该HTML元素需在form表单内):

属性描述
onblur当元素失去焦点时运行脚本。
onfocus当元素获得焦点时运行脚本。
onchange当元素改变时运行脚本。
oninput当元素获得用户输入时运行脚本。
oninvalid当元素无效时运行脚本。
onselect当选取元素时运行脚本。
onsubmit当提交表单时运行脚本。

4.4.4、键盘事件

通过键盘触发事件,类似用户的行为:

属性描述
onkeydown当按下按键时运行脚本。
onkeyup当松开按键时运行脚本。
onkeypress当按下并松开按键时运行脚本。

案例演示:使div可以根据不同的方向键向不同的方向移动

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div id="box" style="width: 100px;height: 100px;background: red;position: absolute;"></div>

<script>
    var box = document.getElementById("box");

    //为document绑定一个按键按下的事件
    document.onkeydown = function (event) {
        event = event || window.event;

        // 定义移动速度
        var speed = 10;

        // 选择移动方向
        switch (event.keyCode) {
            case 37:
                box.style.left = box.offsetLeft - speed + "px";
                break;
            case 39:
                box.style.left = box.offsetLeft + speed + "px";
                break;
            case 38:
                box.style.top = box.offsetTop - speed + "px";
                break;
            case 40:
                box.style.top = box.offsetTop + speed + "px";
                break;
        }
    };
</script>
</body>
</html>

拓展知识:

当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递进响应函数。

Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标的状态。

在IE8中,响应函数被触发时,浏览器不会传递事件对象,在IE8及以下的浏览器中,是将事件对象作为window对象的属性保存的。

解决事件对象的兼容性问题:event = event || window.event;

键鼠属性:

属性描述
ctrlKey返回当事件被触发时,“CTRL” 键是否被按下。
altKey返回当事件被触发时,“ALT” 是否被按下。
shiftKey返回当事件被触发时,“SHIFT” 键是否被按下。
clientX返回当事件被触发时,鼠标指针的水平坐标。
clientY返回当事件被触发时,鼠标指针的垂直坐标。
screenX返回当某个事件被触发时,鼠标指针的水平坐标。
screenY返回当某个事件被触发时,鼠标指针的垂直坐标。

4.4.5、鼠标事件

通过鼠标触发事件,类似用户的行为:

属性描述
onclick当单击鼠标时运行脚本。
ondblclick当双击鼠标时运行脚本。
onmousedown当按下鼠标按钮时运行脚本。
onmouseup当松开鼠标按钮时运行脚本。
onmousemove当鼠标指针移动时运行脚本。
onmouseover当鼠标指针移至元素之上时运行脚本,不可以阻止冒泡。
onmouseout当鼠标指针移出元素时运行脚本,不可以阻止冒泡。
onmouseenter当鼠标指针移至元素之上时运行脚本,可以阻止冒泡。
onmouseleave当鼠标指针移出元素时运行脚本,可以阻止冒泡。
onmousewheel当转动鼠标滚轮时运行脚本。
onscroll当滚动元素的滚动条时运行脚本。

案例演示:编写一个通用的拖拽元素函数,创建两个div,进行拖拽演示,要求兼容IE8、火狐、谷歌等主流浏览器

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div id="box1" style="width: 100px;height: 100px;background: red;position: absolute;"></div>
<div id="box2" style="width: 100px;height: 100px;background: green;position: absolute;"></div>

<!-- 在这里写JavaScript代码,因为JavaScript是由上到下执行的 -->
<script>
    var box1 = document.getElementById("box1");
    var box2 = document.getElementById("box2");

    drag(box1);
    drag(box2);

    /*
     * 提取一个专门用来设置拖拽的函数
     * 参数:开启拖拽的元素
     */
    function drag(obj) {
        //当鼠标在被拖拽元素上按下时,开始拖拽
        obj.onmousedown = function (event) {
            // 解决事件的兼容性问题
            event = event || window.event;

            // 设置obj捕获所有鼠标按下的事件
            /**
             * setCapture():
             * 只有IE支持,但是在火狐中调用时不会报错,
             * 而如果使用chrome调用,它也会报错
             */
            obj.setCapture && obj.setCapture();

            // obj的偏移量 鼠标.clentX - 元素.offsetLeft
            // obj的偏移量 鼠标.clentY - 元素.offsetTop
            var ol = event.clientX - obj.offsetLeft;
            var ot = event.clientY - obj.offsetTop;

            // 为document绑定一个鼠标移动事件
            document.onmousemove = function (event) {
                // 解决事件的兼容性问题
                event = event || window.event;
                // 当鼠标移动时被拖拽元素跟随鼠标移动
                // 获取鼠标的坐标
                var left = event.clientX - ol;
                var top = event.clientY - ot;
                // 修改obj的位置
                obj.style.left = left + "px";
                obj.style.top = top + "px";
            };

            // 为document绑定一个鼠标松开事件
            document.onmouseup = function () {
                // 取消document的onmousemove事件
                document.onmousemove = null;
                // 取消document的onmouseup事件
                document.onmouseup = null;
                // 当鼠标松开时,取消对事件的捕获
                obj.releaseCapture && obj.releaseCapture();
            };

            /*
             * 当我们拖拽一个网页中的内容时,浏览器会默认去搜索引擎中搜索内容,
             * 此时会导致拖拽功能的异常,这个是浏览器提供的默认行为,
             * 如果不希望发生这个行为,则可以通过return false来取消默认行为,
             * 但是这招对IE8不起作用
             */
            return false;
        };
    }
</script>
</body>
</html>

4.4.6、媒体事件

4.4.7、其它事件

4.4.8、事件冒泡

事件的冒泡(Bubble):所谓的冒泡指的就是事件的向上传导,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发,在开发中大部分情况冒泡都是有用的,如果不希望发生事件冒泡可以通过事件对象来取消冒泡。

案例演示:
创建两个div,叠放在一起,分别绑定单击事件,这时点击最里边的div,会触发两个div的单击事件。
如果想要点击最里边的div,不会触发两个div的单击事件,只会触发自己的单击事件,这时候我们可以取消事件冒泡:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        #div1 {
            width: 200px;
            height: 200px;
            background: pink;
        }

        #div2 {
            width: 100px;
            height: 100px;
            background: coral;
        }
    </style>
</head>

<body>
    <div id="div1">
        我是DIV1
        <div id="div2">
            我是DIV2
        </div>
    </div>

    <!-- 在这里写JavaScript代码,因为JavaScript是由上到下执行的 -->
    <script>
        var div1 = document.getElementById("div1");
        var div2 = document.getElementById("div2");

        // 为div1绑定单击事件
        div1.onclick = function () {
            console.log("div1 的单击事件触发了!");
            stopBubble();
        };

        // 为div2绑定单击事件
        div2.onclick = function () {
            console.log("div2 的单击事件触发了!");
            stopBubble();
        };

        // 取消事件冒泡
        function stopBubble(event) {
            // 如果提供了事件对象,则这是一个非IE浏览器
            if (event && event.stopPropagation) {
                // 因此它支持W3C的stopPropagation()方法
                event.stopPropagation();
            } else {
                // 否则,我们需要使用IE的方式来取消事件冒泡
                window.event.cancelBubble = true;
            }
        }
    </script>
</body>

</html>

4.4.9、事件委派

我们希望只绑定一次事件,即可应用到多个的元素上,即使元素是后添加的,我们可以尝试将其绑定给元素的共同的祖先元素,也就是事件的委派。

事件的委派,是指将事件统一绑定给元素的共同的祖先元素,这样当后代元素上的事件触发时,会一直冒泡到祖先元素,从而通过祖先元素的响应函数来处理事件。

事件委派是利用了事件冒泡,通过委派可以减少事件绑定的次数,提高程序的性能。

案例演示:为ul列表中的所有a标签都绑定单击事件

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
</head>

<body>
    <ul id="u1">
        <li><a href="javascript:;" class="link">超链接一</a></li>
        <li><a href="javascript:;" class="link">超链接二</a></li>
        <li><a href="javascript:;" class="link">超链接三</a></li>
    </ul>

    <!-- 在这里写JavaScript代码,因为JavaScript是由上到下执行的 -->
    <script>
        var u1 = document.getElementById("u1");
       

        // 为ul绑定一个单击响应函数
        u1.onclick = function (event) {
            event = event || window.event;
            // 如果触发事件的对象是我们期望的元素,则执行,否则不执行
            if (event.target.className == "link") {
                console.log("我是ul的单击响应函数");
            }
        };


        var li = document.createElement("li");
        var a = document.createElement("a");
        a.innerText = "新加的超链接";
        // a.class = "link";    //不行
        a.setAttribute("class", "link");
        a.setAttribute("href", "javascript:;");    //意外发现,a标签需要有href属性才会有a的默认样式
        li.appendChild(a);
        u1.appendChild(li);

        console.log(document.getElementById("u1"))
        
    </script>
</body>

</html>

4.4.10、事件绑定

4.4.11、事件传播

【JavaScript】JS+DOM实现图片库 【前言】        前面写过的JS博客有提过DOM,理论的知识有了一些了解还远远不不够,动手实践一个小例子会让你印象更加深刻。本篇博客借鉴《JavaScript DOM 编程艺术》中的小例子,希望可以给读者带来收获!        【有关图片库的思考】        把图片放到网页上显示不是什么难事,方法有很多种。简单放入一个网页中未尝不可,但是当图片数量越来越多的时候,网页标记代码没多少,但... 阅读详情

相关推荐

【JS笔记】JS中的DOM对象以及通过JS获取DOM结点,操作DOM属性、DOM增删改查

DOM,全称是:Document Object Model,文档对象模型,它主要是用于描述HTML文档对象的。一个HTML页面是由许多的标签组成的,例如:html、head、body、div等等标签元素,JS里面将整个的HTML作为一个document文档来进行管理,其中HTML里面的每一个标签都是一个DOM结点。HTML里面所有的DOM结点构成了一颗DOM树,这就有点类似于二叉树了,只不过DOM里面的树是多叉树,因为HTML里面的标签里面可以嵌套许多其他的标签。...

✅ Java 开发工程师 2527

html dom与js区别,【JS】 Javascript与HTML DOM的互动 寻路

JS HTML DOMDOM的全程是Document Object Module,即文档对象模型。一般来说,当一个页面被加载时,浏览器会在内部创建一个当前文档的DOM。就像用python的Etree之类的模块解析xml文件时建立的对象一样,浏览器建立的DOM对象抽象了整个html文件,并且形成了一颗html元素的树。而JS,就被赋予了和这种DOM互动的能力。也就是说,JS可以通过增删改查DOM来实...

weixin_39847244的博客 152

Ollama本地大模型部署指南:从核心原理到实战避坑

大语言模型(LLM)作为人工智能领域的核心技术,通过海量数据训练获得强大的语言理解和生成能力。其工作原理基于Transformer架构,通过自注意力机制处理序列数据,在文本生成、代码编写和对话系统等场景展现出巨大价值。随着开源模型的普及,本地部署成为关注焦点,它解决了数据隐私和定制化需求,但面临环境配置和资源管理的挑战。Ollama作为开源工具,通过封装模型格式和统一API,简化了本地部署流程,支持GPU加速和性能调优,让开发者能够快速集成到IDE和自动化脚本中,实现高效的本地AI应用部署。

weixin_30915951的博客 451

JavaScript——DOM编程、JS的对象和JSON

JavaScript——DOM编程、JS的对象和JSON

雷神乐乐的博客 1543

基于mediapipe的动作捕捉和人物模型的驱动

我实习做这个的时候,当时也找了很多资料,但很多资料都没有讲透,下面我就总结一下自己结合看代码后的感悟,还有一些我认为很重要的点。

qq_58484580的博客 7700

Matlab_Marr小波尺度变换图

多尺度的连续小波变换分解后时间尺度图 墨西哥Marr小波函数: %delta 小波变换尺度 %N     小波函数的长度 %s     原始信号 %g     原始信号某个尺度下的小波变化系数 function g=Singularity_Detection(delta,N,s); %保持信号长度 n=length(s); % 构造墨西哥小帽小波函数 for index_x=1

桔色小西瓜 6601

探索 Vanilla JS DOM:纯JavaScript的DOM操作库

在前端开发中,我们常常依赖于诸如jQuery或Vue.js等库来处理DOM(文档对象模型)操作。然而,随着浏览器原生API的日益成熟,使用原生JavaScript进行DOM操作变得更为高效且简洁。 是一个轻量级的项目,旨在提供一套实用的工具函数,帮助开发者用纯JavaScript更方便地操作DOM。 ## 项目简介 Vanilla JS DOM 是一个由 开发的小型库,它封装了一些常见的DOM

gitblog_00087的博客 724

STM32H745xI双核芯片SMPS/LDO配置误区:从复位失败到精准排查的实战复盘

本文详细分析了STM32H745xI双核芯片在SMPS/LDO配置中的常见误区,特别是复位失败问题的排查过程。通过对比参考板与故障板的波形数据,揭示了电感选型不当导致的电源稳定性问题,并提供了硬件设计检查清单和调试技巧,帮助开发者避免类似陷阱。

weixin_42531588的博客 264

JS(JavaScript)的DOM操作

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 十步杀一人,千里不留行。 事了拂衣去,深藏身与名。 ——《侠客行》 文章目录DOM操作1. DOM介绍2. 查询操作2.1 查询方法2.2 查询示例2.2.1 根据id获取dom2.2.1.1 示例2.2.1.2 结果2.2.2 根据tag获取dom2.2.2.1 示例2.2.2.2 结果2.2.3 根据css样式获取dom2.

感谢阅读 1735

hMailServer安装配置

hMailServer安装配置 使用宝塔面板上的宝塔邮件服务器2.1版本,进行安装hMailServer。 宝塔在安装hMailServer是有做了一些配置,如果是手工安装需要注意一下配置点: 1、\hMailServer\Bin 目录下增加mysql连接文件libmysql.dll,要去下载32位的。 libmysql.dll下载 链接:https://pan.baidu.com/s/1YGJXzjowlJ9n_MiqB4xiqw 提取码:wz90 2、 需要提前安装mysql,并创建hM.

王者的博客 5863

让 ABAP 内表真正释放内存:从 CLEAR、FREE 到打破 Table Sharing 的实战技巧

ABAP内表内存管理的关键在于理解其运行时结构:DELETE操作仅逻辑删除行而不会释放内存,CLEAR或FREE才能真正回收内存。常见的误区包括误判空表状态和忽视内表共享机制。实际应用中,大表筛选后应采用VALUE表达式或逐行插入方式重建表体以释放内存。典型案例显示,正确处理内表内存可显著降低SAP Gateway和批处理程序的内存消耗,提升系统稳定性。开发时需结合调试工具观察内存状态,避免因共享机制导致无效回收。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 324

js--JavaScript与DOM之间的关系

前言 内容 类型简介 js中数字是浮点类型,而且是不精确的类型 字符串 json案例 数组 构造方法域对象 构造方法是原型继承的载体 构造方法 实现步骤 添加成员 js支持动态成员 类型的转换与包装对象 基本类型的转换 数字转字符串 字符串转数字 转化成boolean 包装类型 常用对象 正则表达式 元字符 基本元字符 限定元字符: 首位元字符: 简写元字符: 在JavaScrip...

罗俊 1017

qwen2vl ValueError: Image features and image tokens do not match: tokens: 568, features 600

本文介绍了一个用于计算多模态数据集中样本token数量的Python工具,特别针对包含文本和图像的Qwen2-VL模型数据集。

q742971636的博客 1012

Flippy.js:实现流畅DOM变化的JavaScript库

Flippy.js:实现流畅DOM变化的JavaScript库 Flippy.js 是一个使用 JavaScript 编写的开源项目,旨在帮助开发者轻松实现 DOM 元素的动画效果。该项目以简单易用和高效性能为核心特点,支持多种模块化引入方式,适用于不同的开发场景。 1. 项目基础介绍和主要编程语言 Flippy.js 是一个基于 JavaScript 的开源库,利用 FLIP 动画技术,可以轻松...

gitblog_00832的博客 644

Python 爬虫实战:全面解析雪球网用户投资组合数据采集

本文介绍了如何使用 Python 爬虫技术,抓取雪球网用户的投资组合信息。通过模拟登录、解析页面内容等步骤,获取了用户的持仓数据。未来,可以进一步探索以下方向:

2201_76125261的博客 1303

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【JavaScript学习总结】【5】、JS DOM

当页面加载时,浏览器会创建页面的文档对象模型(Document Object Model)。文档对象模型定义访问和处理 HTML 文档的标准方法。DOM 将 HTML 文档呈现为带有元素、属性和文本的树结构,即节点树。通过 DOM,JS 可创建动态的 HTML,可以使网页显示动态效果并实现与用户的交互功能。JS 能够改变页面中所有的 HTML 元素、属性和 CSS 样式,并对页面中所有事件做出响应。所以学习 JS 的起点就是处理网页,处理网页就需要使用 DOM 进行操作。

lily19970107的博客 207

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

推荐 DOM.js: 一个轻量级的 JavaScript 库

推荐 DOM.js: 一个轻量级的 JavaScript 库 DOM.js 是一个轻量级、模块化的 JavaScript 库,用于操作和管理 HTML 和 XML 文档对象模型 (DOM)。它旨在提供一套简洁而强大的 API,帮助开发者更高效地处理页面上的元素和事件。 项目介绍 DOM.js 提供了一系列实用的方法,用于简化常见的 DOM 操作任务,例如创建新元素、查找现有元素、添加和删除类名、设...

gitblog_00023的博客 450

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JavaScript DOM编程

目录 一、什么是DOM? 二、动态改变文档内容的原理 三、Element常用属性 四、常用方法 1.创建和增加节点的方法 2.删除和替换节点的方法: 3.其他方法 五、使用JS操作表格 总结: 一、什么是DOM? 文档对象模型(Document Object Model) 通过DOM可以动态改变文档内容 二、动态改变文档内容的原理 解析文档(如HTML)并生成DOM树 通过DOM标准接口+编程语言改变文档内容 解析文档生成DOM树的过程 .

weixin_62270300的博客 967

JavaScript dom编程-在什么位置编写js代码

JavaScript dom编程-在什么位置编写js代码 在什么位置编写js代码合适呢? 总结:js代码写在head标签中,并且放在title标签后面,写在script标签中,但是最好不要直接写在script标签中,而是写在window.onload事件的function里边的函数体中最合适,参照如下写法是比较规范的写法: &lt;html&gt; &lt;head&gt; &lt;meta...

一只苟延残喘的卑微蝼蚁 852

js html dom xml dom,Javascript里使用Dom操作Xml

Javascript里使用Dom操作Xml更新时间:2007年01月22日 00:00:00 作者:看了一天的XML资料,感觉优快云上这篇讲的挺细致的。即有DotNet写入XML文件的示例,又有JS读取的示例,值得一看。(Source:http://blog.youkuaiyun.com/flypigluo)一.本笔记使用的Xml文件二.IXMLDOMDocument/DOMDocument简介2.1...

weixin_29281915的博客 228

dom js 同级_javascript-DOM操作

第一章 API介绍​ API是一种事先定义好的函数,用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。​ Web API接口:浏览器提供的一系列操作浏览器功能和页面元素的API(BOM和DOM)第二章 DOM(文档对象模型)2.1基本概念​ DOM:(Document Object Model)文档对象模型。当网页被加载时,浏览器会创建文档对...

weixin_42512276的博客 376

JavaScript DOM基础

本文简单的讲解了JavaScript的DOM基础,适合初学的朋友们,如果本文对你有所帮助请三连支持博主,你的支持是我更新的动力。以下是本篇文章正文内容一个完整的JavaScript实现由以下3个不同部分组成核心(ECMAScript)语言核心部分,描述了该语言的语法和基本对象。文档对象模型(DocumentObjectModel,DOM)网页文档操作标准,描述处理网页内容的方法和接口。浏览器对象模型(BOM)客户端和浏览器窗口操作基础,描述与浏览器进行交互的方法和接口。编程接口。......

程序员柒的博客 2419

Hy-MT2-1.8B 许可与合规指南:翻译模型 MIT 协议、AMD EULA 与商用注意事项完整详解

本文以 **Hy-MT2-1.8B_rai_1.9.0_m_1.0.1_npu**(AMD 发布的 1.8B 参数多语言机器翻译模型)为例,讲解它的许可与合规要点:如何读懂模型卡片中的 `license: other` 声明、MIT 协议与 AMD EULA 的关键差异、商用落地前的合规清单,帮助你在集成这款翻译模型前避开常见的授权坑。 ## 1️⃣ 先看仓库:这个模型到底声明了什么许可? 打

gitblog_01055的博客 320

JS之JavaScript中的面向对象及DOM操作

面向对象 DOM

qq_41547728的博客 486

【JS】JavaScript Web APIs DOM详解

文档涵盖事件监听、事件类型、事件对象、环境对象、回调函数、事件流、事件委托、其他事件(页面加载、滚动、尺寸)、日期对象、DOM节点操作等内容,这份文档涵盖了Web APIs的核心概念,从基础的事件监听到高级的节点操作,提供了完整的知识体系和实用示例。

weixin_75257080的博客 1497

javascript Dom拖动 插件 putThere.js

这篇文章同样发布在我的GITHUB博客:[我的GITHUB博客](https://ZQ-jhon.github.io/2018/01/26/javascript Dom拖动 插件 putThere.js) 开源地址: 跪求各位看官给我点star吧 T.T,谢谢! https://github.com/ZQ-jhon/putThere.js 原理及构想 关于拖动,如果不用html5

Tycho‘s Blog 570
上一篇: HTML + CSS——千峰Ghost老师(第三部分:Flex弹性盒模型)
下一篇: js事件流
不知-_
博客等级 码龄8年 22粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知-_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值