HTML代码: <button type='button' class='btn' id='1'>按钮1</button> <button type='button' class='btn' id='2'>按钮1</button> <button type='button' class='btn' id='3'>按钮1</button> <button type='button' class='btn' id='4'>按钮…
<ul> <li>男</li> <li>女</li> <li>老</li> <li>少</li> </ul> 使用js为多个未知数量的li循环添加事件的时候很容易想到如下代码 for( var i= 0,lis = document.getElementsByTagName("li"),len=lis.length; i<len;i++){ lis[i].onc…
通过knockout数据绑定的DOM元素,通过chrome控制台打断点知道,DOM元素会被暂时隐藏,使用document.querySelector()是获取不到的,会显示null,直到数据绑定完成才会出现.如果要在这些DOM元素上面绑定事件,必须再数据绑定完成之后添加事件,而且绑定事件和数据绑定的代码必须写在同一个作用域里.不然添加绑定事件不会成功. 案例 一段AJAX调用成功后绑定数据,并且添加事件的代码(ajax已被封装) var ViewModel = { availableCashDa…
以前总觉得自己写的代码不太规范,尤其是写原生的时候.举个例子: 要为页面上所有".a"的元素绑定事件,当然了用jquery很方便:$('.a').bind("click",fn); 原生的话,我们很多会这样写: for(var i=0;i<length;i++){ elem[i].onclick=function(x){return function(){}}(i); } 但是如果,我要连续绑定两个事件呢? for(var i=0;i<length;i+…
经常会遇到给元素循环添加class的效果,例如下面这个图 每个模块的背景色和图标都不相同,但是呢,模块的数量又不确定,说不定有几十个,那我不能设计几十个图标吧,所以,可以做成每9个一循环,也就是第10个与第1个的样式相同,第11个与第2个的样式相同,依次类推. 还有表格中也经常遇到: 给表格的每一行设置背景色,每5行循环一次,表格的行数自然也是不确定的. 所以就需要几行js代码,例用for循环,给元素循环添加class.代码很简单,就是每次写的时候,总是在循环代码中调试,到底是从0开始?还是从1…
JavaScript Dom基础 学习目标 1.掌握基本的Dom查找方法 domcument.getElementById() Domcument.getElementBy TagName() 2.掌握如何设置DOM元素的样式 DOM查找方法 语法:document.getElementById(“id”) 功能:返回对拥有指定ID的第一个对象的引用 返回值:DOM对象 说明:id为DOM元素上id属性的值 DOM查找方法 语法:document.getElementsByTagName(“ta…
<ul> <li>list <strong>item 1</strong></li> <li><span>list item 2</span></li> <li>list item 3</li> </ul> <script> $("ul").click(function(event) { console.log(event); va…
1.装包,引包 首先需要安装两个包 react ,react-dom cnpm i react react-dom 介绍下这两个包: react:专门用来创建React组件,组件生命周期等这些东西. react-dom:里面主要封装了和Dom操作相关的包(例如:要把组件渲染到页面上) 装了之后就引包使用了 import React from ‘react’ import ReactDom from ‘react-dom’ 2.创建dom对象 在react中,如果要创建DOM元素了,只能使用Rea…
js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[1] = "bbb"; arr[2] = "ccc"; //alert(arr.length);//3 arr.pop(); //alert(arr.length);//2 //alert(arr[arr.length-1]);//bbb arr.pop(); //al…
1.需求 给下面每个按钮增加事件 <ul id="list"> <li>按钮1</li> <li>按钮2</li> <li>按钮3</li> <li>按钮4</li> <li>按钮5</li> </ul> 本能的做法就是直接循环添加,如下 var list_obj = document.getElementsByTagName('li'); f…
最简单的莫过于使用click方法: 1 <input id="btn" type="button" value="BUTTON" onclick="alert(1)"/> 2 <script> 3     var btn = document.getElementById('btn'); 4     btn.click(); 5 </script> 所有浏览器都弹出了1.但是如果把input…
1.引子 相信很多初学js的人,都遇到这样一种情况:想要给一堆按钮添加各自的事件,比如点击第i个按钮时,弹出i这个值.理所当然地,我们会这样写: var buttons = document.getElementsByTagName("button"); //假设一共有8个按钮 for(var i = 0; i < buttons.length; i++) { buttons[i].onclick = function() { alert("我的index是"…
闭包 1.正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function scope内默认有个名为Global的全局引用(有了这个引用,就可以直接调用 Global 的属性或方法) 2.凡是在闭包域内声明的变量或方法,外部无法直接访问 3.闭包域可以访问外部的变量或方法 (上图为 chrome 下 debug 环境) 当在一个闭包域内包含另一个闭…
2017-01-06 Tomson JavaScript 转自 https://segmentfault.com/a/1190000003818163 闭包 1.正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function scope内默认有个名为Global的全局引用(有了这个引用,就可以直接调用 Global 的属性或方法) 2.凡是在闭包…
1.代码1  index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>我是demo1.html</title> <script src="js/jquery-2.1.0.js" type="text/javascript" charset="utf-8">&l…
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test</title> </head> <body> <h2 class="test">class="example" 的标题</h2> <script> document.querySelect…
问题: 如题,就是说alert后出现一个对话框,我没有点关闭,其他js文件或html会被加载吗,我遇到一个问题就是在页面加载时调用一个div的click事件,却没有被执行,但是在调用事件前面加上alert('xx'):运行后手动关闭提示框click事件就调用成功,为什么,也写了个sleep函数,但不论sleep多久click事件也不会被执行,那我要怎样才能自动调用这个click. 解决方法: 将代码包含在onload中,进行(window.onload())加载. 原理: 首先网页接你所编写的代…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> <li>香蕉</li> <li>苹果</li> <li>菠萝</li> <l…
两种类型1.$('li').bind('click',function(){}); 当你用js动态添加li的时候,你添加的li不具有你绑定的事件.这种写法与$('li').click(function(){})一样.2.$('li').live('click',function(){}); 当你用js动态添加li的时候,你添加的li具有你绑定的事件…
声明数组 var arr1 = [1,2,3,4,5]; var arr2 = new Array(100); //声明长度为100的arr2数组. arr2=[]; arr2.length = 100; var arr3 = new Array([1,2,3,4,5]); //是一个二维数组. arr3 = [[1,2,3,4,5]]; arr3.length = 1; arr3[0] = [1,2,3,4,5];arr3[0].length = 5; var arr4 = new Array…
使用dom breakpoint能快速找到修改了某一个dom element的JavaScript code位于何处.在Chrome development tool里,选中想要inspect的dom element,右键选择Break on->Attributes modifications: 之后在DOM Breakpoint里能看到对应的entry: 点击Resume script execution,自动在dom attribute发生变化的地方停下来: 从callstack能得知是jQ…
创建元素 // 创建元素节点 $('<p></p>'); // 创建属性节点 $('<p class="wow"></p>'); // 创建文本节点 $('hello world'); // 结合更实用 $('<p class="wow">hello world</p>'); 添加元素 append() 在元素内部的结尾插入内容 $('p').append('<span>内部结尾&l…
在web开发过程中难免会遇到让程序员去修改一些js代码东西,例如js的ajax和php等语言的交互等,在这其中你不得不了解点js的事件触发,且随着js的盛行各种插件的事件让程序员眼花缭乱,所以借助一个好的工具可以帮助我事半功倍,并且想作为一名合格的全栈型工程师一直是我的前进的目标! 工具/原料 火狐+google浏览器 google的Visual Event插件 1.首先对于一些简单的html页面,里面的js文件加载的也少的情况下,我们可以可以使用火狐的firebug或者google的控制台都可…
绑定在被点击元素的事件是按照代码顺序发生,其他元素通过冒泡或者捕获“感知”的事件,按照W3C的标准,先发生捕获事件,后发生冒泡事件.所有事件的顺序是:其他元素捕获阶段事件 -> 本元素代码顺序事件 -> 其他元素冒泡阶段事件 . 一个DOM元素绑定两个事件,一个冒泡,一个捕获,则事件会执行多少次,执行顺序如何. 首先来了解一下冒泡和捕获是怎么回事: 1.冒泡 冒泡是从下向上,DOM元素绑定的事件被触发时,此时该元素为目标元素,目标元素执行后,它的的祖元素绑定的事件会向上顺序执行.如下代码所示,…
                                    DOM对象模型  DOM(Document Object Model),是指文档对象模型,是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型. [DOM树节点]    DOM节点分为三大类:元素节点,文本节点,属性节点:   文本节点,属性节点为元素节点的两个子节点:   通过getElment系列方法,可以去到元素节点: [查看节点]…
原文地址:http://www.moye.me/2014/12/29/closure_higher-order-function/ 引子 最近发现一个问题:一部分写JS的人,其实对于函数式编程的概念并不是太了解.如下的代码片断,常常让他们觉得不可思议: OAuth2Server.prototype.authCodeGrant = function (check) { var self = this; return function (req, res, next) { new AuthCodeG…
找这工具找了好久,统一找着了,开发人员不可多得的好东东,收藏做一下分享. 用Chrome插件Visual Event查看Dom绑定的事件 Visual Event简介 Visual Event是一个开源 Javascript 书签,能提供绑定在DOM元素上的事件调试信息.Visual Event能显示如下信息: 1.哪一个元素有事件绑定 2.某元素上绑定的事件类型 3.事件触发后运行的代码段 4.定义绑定函数的源文件和行号(仅限于WebKit和Opera浏览器) 除了对调试你自己的代码大有用途,…
直接上代码,备用,详见注释 <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <p>123456&l…
遇到的问题:动态生成的内容,事件绑定会出错. 例子:http://snowinmay.net/jqm/dom-learn2.html 1.绑定事件对动态生成的新元素无效. 问题描述:bind事件绑定后只对dom中存在的元素有效,但是很多时候我们会对dom元素进行添加,后添加进来的元素bind事件是监测不到的. 解决方法: 在每一个动态生成的地方都在次绑定一下事件 把bind改用live,因为live是实时监测的 把bind改用delegate,因为delegate是实时监测的 在jq1.9版本后…
作者:白狼 出处:http://www.manks.top/javascript-dynamic-event.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 其所谓的动态添加事件实质就是指js中的事件委托. 我们知道在js中,事件处理只能绑定在当前被选中的元素上,换句话也就是说,事件处理只能绑定在当前文档已经存在的元素上!但是,往往小伙伴们都会遇到一个问题就是,我的元素是后来动态添加到页面的,而我又想给该元素绑定…