首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >拦截DOM更改

拦截DOM更改
EN

Stack Overflow用户
提问于 2018-10-25 07:05:32
回答 1查看 401关注 0票数 0

求求你,我真的不是程序员。

当一个子元素被附加到一个div后,我需要截取。

就像下面这个例子(没有超时):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
  setTimeout(function(){
    $('#holder').append('<div id="device">Test</div>');}, 2000);
});
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
  <div id="holder">
    <!––child dynamicly inserted-->
  </div>
</body>

我使用了变分观察器,但是接缝似乎被弃用了……我看到了proxy(),但我不知道如何使用它...

我的变异观察者代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var observer = new MutationObserver(function(mutations, observer) {
    mutations.forEach(function(mutation) {  

        if ($('#main-view div.row').next().length != 0 ){
            DelRow();
        };

        $('#main-view div.row.divider .span4').toggleClass('span4 tile');

    });
});

    $( document ).ready(function() {
        if (!isMobile){ 
        observer.observe(targetedNode, {
            childList: true,
            subtree: true
        });

但是不要在手机上工作..

EN

回答 1

Stack Overflow用户

发布于 2018-10-26 15:19:57

突变观察者工作得很好,并且没有被弃用。我一直在用它。这是一个侦听事件,然后警告是否添加或减去div的示例。尽量将本演示中的技术应用到您自己的用例中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="holder">
  <h2>Let's Add Div's Dynamically</h2>
</div>

<button id="button" type="button">Add New Div</button>

<script>
    const btn = $('#button');
    const holder = $('#holder');

    // append a new div to out holder element
    function addDiv(){
        holder.append('<div>A Great New Div!! :D</div>'); 
    }

    // attach click function to btn
    btn.click(addDiv);



    // Create an observer instance linked to the callback function
    var observer = new MutationObserver(function(mutationsList, observer) {
        $(mutationsList).each(function(index, item){
            if (item.type === 'childList'){

                if (item.addedNodes.length > 0){
                    alert('new div is being added!');
                }

                if (item.removedNodes.length > 0){
                    alert('div has been removed'); 
                }

            }
        });
    });

    // Start observing the target node for configured mutations
    observer.observe(holder[0], { 
        attributes: true, 
        childList: true, 
        subtree: true 
    });
</script>

JS Fiddle Demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52983284

复制
相关文章
HTML DOM(一):认识DOM
该文介绍了DOM的基本概念,包括DOM的定义、组成部分、级别和节点等,并举例说明了DOM在HTML、XML和CSS等文档中的应用。
高爽
2017/12/28
1.6K0
HTML DOM(一):认识DOM
【虚拟DOM】浅析 虚拟DOM
尽管MVVM将页面逻辑实现的核心转移到数据层面的修改上,但是最终数据层反映到页面上View的层的渲染和改变仍是通过对应的指令进行DOM操作来完成的。而且,通常一次ViewModel的变化可能会触发液面上多个指令操作DOM的变化,从而造成页面结构层发生大量DOM操作或渲染。
前端修罗场
2023/10/07
1580
【虚拟DOM】浅析 虚拟DOM
document对象(DOM)–认识DOM
文档对象模型DOM(Document Object Model)定义访问和处理 HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文 本的树结构(节点树)。
全栈程序员站长
2022/11/04
1.7K0
虚拟DOM与真实DOM
虚拟DOM(Virtual DOM)和真实DOM(Real DOM)是在Web开发中常用的两种概念。虚拟DOM是React等一些JavaScript库和框架的核心概念之一,用于提高页面渲染性能和优化用户体验。真实DOM是浏览器中实际的HTML文档对象模型,用于表示和操作页面的结构和内容。
堕落飞鸟
2023/05/19
1K0
dom啦8 DOM事件
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <button>我是按钮</button> <a href="http://www.it666.com">我是a标签</a> <script type="text/javascript"> let qq= document.querySelector("button"); qq.onclick=function() { alert("按钮被点击了"); }
贵哥的编程之路
2020/10/28
1.1K0
DOM
1.获取元素节点的三个方法 1.1 document.getElementById("id") 返回值是给定id属性的元素节点对应的对象; 1.2document.getElementsByTagName("p") 返回的是给定标签的一个对象数组,可以使用for循环对数组进行遍历; document.getElementsByTagName("p").length获得长度; 1.3 document.getElementsByClassName("one") (此方法可能在某些DOM实现中没有
天天_哥
2018/09/29
7360
DOM
概念: 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。 DOM的设计是以对象管理组织(OMG)的规约为基础的,因此可以用于任何编程语言。Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等,Dom技术使得页面的交互性大大地增强。 通俗理解: 把页面上的内容转换成对象的形式,通过操作对象,达到操作页面上标签和标签属性的一组方法
羊羽shine
2019/07/16
1.1K0
DOM
文档对象模型(Document Objenct Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一中结构化的表示方法,可以改变文档的内容呈现方式.我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来.DOM属于浏览器,而不是javascript语言规范的规定的核心内容·
Wyc
2018/09/11
7950
DOM
DOM
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口)。DOM描绘了一个层次变化的节点树,允许开发人员添加、移除和修改页面的某一部分。
奋飛
2021/08/30
1.5K0
DOM
DOM
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口)。DOM描绘了一个层次变化的节点树,允许开发人员添加、移除和修改页面的某一部分。
奋飛
2019/08/15
1.5K0
DOM
1.DOM节点树 2.获得节点的方法 getElementById(); getElementsByTagName(); getElementsByClassName
天天_哥
2018/09/29
9150
模拟虚拟dom生成实际dom
// 生成虚拟dom function createVdom(tagName,props,children){ const VDom={ tagName, props, children } return VDom; } // 把虚拟dom转换成真实dom function createRdom(vDom,elm){ const {tagName,props,children}=vDom; //创建出真实的dom节点
lilugirl
2020/10/13
9360
DOM Core 与 HTML-DOM
DOM(文档对象模型)是由W3C制定的一套访问和操作XML(eXtensible Markup Language)文档的标准,即API。比如DOM告诉JavaScript引擎如何在浏览器窗口中显示和操作XML创建的标记(Tag)。
Chor
2019/11/07
1.9K0
(四)虚拟DOM与真实DOM
# 🍈 一、虚拟 DOM 是什么 虚拟 DOM 就是一个普通的 Object 对象(一般对象) # 🥫二、真实 DOM # 🧂总结 虚拟 DOM 就是一个普通的 Object 对象(一般对象) 虚拟 DOM 属性少,比较轻盈 真实 DOM 属性多,比较繁重 为什么虚拟 DOM 轻呢,因为他只在 React 内部用到了,不用真实 DOM 那么多属性,因为用不到,当然最后虚拟 DOM 会转换为真实 DOM 呈现在页面上
老怪兽
2023/02/21
8340
(四)虚拟DOM与真实DOM
字体更改
其中@font-face相当于创建一个字体族,然后下边body部分是在应用字体族,那个名字其实就是在前边创建的字体的名字。 通过在网络上的查找,我首先选择使用的是Robot字体,这个字体族写的英文字体相当漂亮:
爱编程的小明
2022/09/06
3.6K0
字体更改
vue源码解读--Vitual DOM(虚拟DOM)
Virtual DOM产生的原因是浏览器中DOM是很“昂贵”的,我们来看一下一个p元素的属性都有哪些:
用户3258338
2019/08/09
8240
vue源码解读--Vitual DOM(虚拟DOM)
Springmvc拦截器拦截Ajax请求
文章目录 1. 拦截器拦截Ajax请求 1.1. 原因 1.2. 解决 1.3. 第一种 拦截器拦截Ajax请求 ## 问题 如果我们在拦截器中定义了拦截器的路径为/user/*这个地址,并且拦截器拦截器之后,如果没有登录,那么重定向到登录界面。但是我们在未登录的前提下使用Ajax异步请求了/user/addUser.do这个地址,出现了拦截器是拦截了,但是并没有重定向到登录界面。 原因 可以参照这篇文章 :http://www.cnblogs.com/dudu/p/ajax_302_found.htm
爱撒谎的男孩
2019/12/31
1.9K0
虚拟DOM
DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型”(Document Object Model)。它的作用是将网页转为一个 JavaScript 对象,从而可以用脚本进行各种操作(比如增删内容)。 DOM就是将网页转化为一个对象并提供操作这个对象接口(即操作这个对象的方法),所以可以通过DOM对网页中的元素进行操作。如对某个节点增加属性,增加孩子,删除等。 DOM就是网页里你看得见的对应的某个元素。
代码之风
2018/10/31
9710
dom操作
var div = document.getElementById(‘id名’);//返回是一个,不是数组 var div = document.getElementsByTagName(‘标签名’);//返回数组 (实时) var div = document.getElementsByClassName(‘class名’);//(带s的都是数组) var div = document.getElementsByName(‘name’);//name名 var div = quarySelector();//css选择器 选择一个 里面放’id’,‘class’… var div - quarySelectorAll();//css选择器 选择一个(静态的,不实时。用途受局限)
微醺
2019/01/17
6830
HTML DOM
DOM 文档对象模型。 节点 元素 即 标签 Element 1 文本 <a>文本</a> Text 3 属性 <a href=""></a> Attr 2 注释节点 Comment 8 文档节点 Document 9 文档类型节点 DocumentType 10 <!DOCTYPE html> 文档片段节点 DocumentFragment 11 Javascript obj.nodeName obj.nodeValue obj.attributes[0].nodeName
康怀帅
2018/02/28
6580

相似问题

拦截对DOM函数的调用

13

jQuery:拦截原始DOM就绪事件?

26

拦截DOM和JS引擎调用

10

检测/拦截向DOM中插入<img>

43

如何在DOM中拦截导航事件?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文