dom

处理xml(html)中的空格

徘徊边缘 提交于 2020-02-22 19:30:06
xml文档(包括html)是从一个独立的根结点开始,它包含指向子节点的指针。每一个子节点都包含指针指向它的父节点、相邻节点和子节点。标准dom中,dom指针不仅可以指向元素,也可以指向文本节点。 请看以下html代码: < body > < h1 > DOM简介 < / h1> < p id = " test " > DOM是一个表达XML文档的标准 < / p> < p > 你随处可见dom的身影 < / p> < / body> 我想获得id为test的p元素的下一个p元素,可能理所当然的认为用document.getElementById('test').nextSibling就能获得。其实不然。在ie中确实能够获得你想要的,而在firefox、Opera9和Safari中你只能获得一个空格。 《精通javascript》 上提供了一个函数,用于处理xm中的这些空格,其作用原理就是找出文本节点,并删除这些节点,以达到删除这些空格的目的。 function cleanWhitespace(element) { // 如果不提供参数,则处理整个HTML文档 element = element || document; // 使用第一个子节点作为开始指针 var cur = element.firstChild; // 一直到没有子节点为止 while (cur != null )

前端随笔

僤鯓⒐⒋嵵緔 提交于 2020-02-22 05:51:34
把之前存的一堆自己觉得记录的知识点全部记录一下,有兴趣可以看看,共勉。 $ ( function ( ) { todo ( '71899703 200 6 91 425 4 67407 7 96488 6 4 2 7 31064 9 7920 1 34608557 27 72 18 81' ) . then ( f2 ) } ) ; function todo ( e ) { // var dfd = $.Deferred(); // setTimeout(function () { // // f1的任务代码 // dfd.resolve(); // }, 500); // return dfd.promise; // console.log(e.length) // var e = input; var x = e . length ; var y ; // 输出集合 var list = [ ] ; // 排序用集合 var templist = [ ] ; for ( var i = 0 ; i < x ; i ++ ) { y = e . split ( " " ) [ i ] ; if ( ! y ) { break ; } list [ i ] = y ; var sum = 0 ; for ( var n = 0 ; n < y . length ; n ++ )

VUE生命周期的理解

為{幸葍}努か 提交于 2020-02-22 03:52:22
Vue有一套完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程,都属于Vue的生命周期。Vue实例从创建到销毁的过程,就像一条生命的生老病死的过程,就是Vue的生命周期。 每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁。 实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom,一般不做操作 挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在这个函数中虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始render,渲染出真实dom,然后执行mounted钩子函数,此时,组件已经出现在页面中,数据

vue-生命周期

て烟熏妆下的殇ゞ 提交于 2020-02-22 03:51:51
###1.生命周期图    ###2.vue生命周期分三大阶段: 提供的可操作钩子函数     初始化显示:  beforeCreate / created             beforeMount / 挂载(发送ajax请求/定时器):mounted     更新:     beforeUpdate / updated     死亡:     死亡之前:beforeDestory ()/ 死亡之后:destoryed()      过程:   1.实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom,一般不做操作   2.挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取   3.接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在这个函数中虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会

vue笔记

假如想象 提交于 2020-02-22 03:51:09
vue生命周期   每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁。 实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom,一般不做操作 挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在这个函数中虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始render,渲染出真实dom,然后执行mounted钩子函数,此时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已经挂载好了,可以在这里操作真实dom等事情... 当组件或实例的数据更改之后,会立即执行beforeUpdate

python XML解析

偶尔善良 提交于 2020-02-21 23:32:56
阅读目录 1. 什么是xml?有何特征? 2. 获得标签属性 3. 获得子标签 4. 获得标签属性值 5. 获得标签对之间的数据 6. 例子 7. 总结 回到顶部 1. 什么是xml?有何特征? xml即 可扩展标记语言 ,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 例子:del.xml <?xml version="1.0" encoding="utf-8"?> <catalog> <maxid>4</maxid> <login username="pytest" passwd='123456'> <caption>Python</caption> <item id="4"> <caption>test</caption> </item> </login> <item id="2"> <caption>Zope</caption> </item> </catalog> 从结构上,很像HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,其焦点是数据的外观。它被设计用来 传输 和 存储 数据,其焦点是数据的 内容 。 那么它有如下特征: 它是有 标签对 组成,<aa></aa> 标签可以有属性:<aa id='123'></aa> 标签对可以嵌入数据:<aa>abc</aa> 标签可以嵌入子标签(具有层级关系)

python xml.dom模块解析xml

為{幸葍}努か 提交于 2020-02-21 23:32:20
阅读目录 1. 什么是xml?有何特征? 2. 获得标签属性 3. 获得子标签 4. 获得标签属性值 5. 获得标签对之间的数据 6. 例子 7. 总结 回到顶部 1. 什么是xml?有何特征? xml即 可扩展标记语言 ,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 例子:del.xml <?xml version="1.0" encoding="utf-8"?> <catalog> <maxid>4</maxid> <login username="pytest" passwd='123456'> <caption>Python</caption> <item id="4"> <caption>test</caption> </item> </login> <item id="2"> <caption>Zope</caption> </item> </catalog> 从结构上,很像HTML超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,其焦点是数据的外观。它被设计用来 传输 和 存储 数据,其焦点是数据的 内容 。 那么它有如下特征: 它是有 标签对 组成,<aa></aa> 标签可以有属性:<aa id='123'></aa> 标签对可以嵌入数据:<aa>abc</aa> 标签可以嵌入子标签(具有层级关系)

华育兴业干货 | Web前端经典面试题及答案

a 夏天 提交于 2020-02-21 19:18:57
昨天,小骨头分享了关于Java的面试题,有学员反映需要前端方向的面试题,所以小骨头又来给大家分享干货了,本篇收录了一些面试前端岗位时,经常会遇到的经典面试题,通过对本篇知识的整理以及经验的总结,希望能帮到更多的前端面试者。 javascript 1、JavaScript中如何检测一个变量是一个String类型?请写出函数实现 方法1、 function isString(obj){ return typeof(obj) === "string"? true: false; // returntypeof obj === "string"? true: false; } 方法2、 function isString(obj){ return obj.constructor === String? true: false; } 方法3、 function isString(obj){ return Object.prototype.toString.call(obj) === "[object String]"?true:false; } 如: var isstring = isString('xiaoming'); console.log(isstring); // true 2、请用js去除字符串空格? 方法一:使用replace正则匹配的方法 去除所有空格: str = str

Listen to undo/redo event in contenteditable div

依然范特西╮ 提交于 2020-02-21 13:21:27
问题 Is there a way to listen on all the ways a user could trigger an undo on a contenteditable div? For example when the user hits Control+Z, Right-click -> Undo, or in the file menu Edit -> Undo. I'm not looking for undo/redo algorithms or implementations, just the ability to listen to the event and overwrite the behavior. 回答1: Well, the Ctrl+Z/Y is possible, but I don't know about the Right-click->Undo/Redo part. $(document).keydown(function (e) { var thisKey = e.which; if (e.ctrlKey) { if

Listen to undo/redo event in contenteditable div

心不动则不痛 提交于 2020-02-21 13:10:34
问题 Is there a way to listen on all the ways a user could trigger an undo on a contenteditable div? For example when the user hits Control+Z, Right-click -> Undo, or in the file menu Edit -> Undo. I'm not looking for undo/redo algorithms or implementations, just the ability to listen to the event and overwrite the behavior. 回答1: Well, the Ctrl+Z/Y is possible, but I don't know about the Right-click->Undo/Redo part. $(document).keydown(function (e) { var thisKey = e.which; if (e.ctrlKey) { if