var div = document.getElementById('myId'); div.userProperty = 'test2'; alert(div.attributes.length); // IE6/7/8 -> 4 , [id,class,userAttribute,userProperty] // IE9/FF -> 3, [id,class,userAttribute] alert(div.userAttribute); // IE6/7/8 -> 'test1' // IE9/FF -> undefined alert(div.getAttribute('userAttribute')); // IE6/7/8/9/FF -> 'test1' alert(div.getAttribute('userProperty')); // IE6/7/8 -> ...
代码如下: var props = { for : htmlFor, class: className, readonly: readOnly, maxlength: maxLength, cellspacing: cellSpacing, rowspan: rowSpan, colspan: colSpan, tabindex: tabIndex, usemap: useMap, frameborder: frameBorder } 说点题外话,用json格式来创建对象的话,建议属性不需要单引号或者双引号,除非一些ecmascript的关键词,比如上面的'for','class'等,建议平时还...
一、背景知识介绍 通常为DOM元素增加事件有以下几种办法: 1,硬编码形式 2,事件监听 3,JS框架提供的事件绑定 1,硬编码形式,采用的是原始事件(Original Event)的形式。 代码类似如下: 代码如下: document.getElementById(element_id).eventName = func(); 2,事件监听机制,这种形式采用的做法是根据DOM事件机制,分为DOM标准事件模型addEventListener和IE事件模型attchEvent。 代码类似如下: 代码如下: var addEventH...
:nth-child(index/even/odd/equation)匹配其父元素下的第N个子或奇偶元素 :eq(index) 只匹配一个元素,而这个将为每一个父元素匹配子元素。:nth-child从1开始的,而:eq()是从0算起的! 可以使用:nth-child(even):nth-child(odd):nth-child(3n):nth-child(2):nth-child(3n+1):nth-child(3n+2) Matches the nth-child of its parent. While :eq(index) matches only a single element, this matches more then one: One for each pa...
:hidden 匹配所有的不可见元素,input 元素的 type 属性为 "hidden" 的话也会被匹配到 Matches all elements that are hidden, or input elements of type "hidden". 返回值 Array 示例 查找所有不可见的 tr 元素 HTML 代码:Value 1 Value 2 jQuery 代码: $("tr:hidden") 结果: [ Value 1 ] --------------------------------------------------------------------------------------- :visible 匹配所有的可见元素 Matches a...
document.documentElement.getBoundingClientRect 下面这是MSDN的解释: Syntax oRect = object.getBoundingClientRect() Return ValueReturns a TextRectangle object. Each rectangle has four integer properties (top, left, right, and bottom) that represent a coordinate of the rectangle, in pixels. RemarksThis method retrieves an object that exposes the left, top, right, and bottom coordinates of the union o...
代码如下: document.getElementById("testDiv").innerHTML ="动态创建的div"; 而且用的应该是还是乐此不疲,但是有多少人知道这是错误的做法!错误的原因: (1) 在页面加载时改变了页面的结构. 在IE6中如果网络变慢或者页面内容太大就会出现"终止操作"的错误. 也就是说"永远不要在页面加载时改变页面的Dom模型". (2) 使用修改HTML内容添加元素, 不符合Dom标准. 在实际工作中也碰到过使用这种方法修改内容后, 某些浏览器中并不能立...
所以, 我们得利用IE的currentStyle和W3C的getPropertyValue获取. elem.style.attr获取样式的方法就不说了. 先来看currentStyle方法, 此对象ie专属, 代表了在全局样式表、内嵌样式和 HTML 标签属性中指定的对象格式和样式. IE下通过它, 就可以获取元素的Css属性值. 而针对其他标准浏览器, W3C也提供了一个方法getPropertyValue, 此方法, 稍有点复杂, 首先要通过document.defaultView.getComputedStyle获得Css的样式对象, 然后通过该...
动态创建div: 代码如下: $(function(){ $("",{ id: test, text: this is a test, "class": "test", click: function(){ $(this).toggleClass(test); } }).appendTo("body"); }) 动态创建input: 代码如下: $(function(){ $("", { type: text, val: test, focusin: function() { $(this).addClass(active); }, focusout: function() { $(this).removeClass(active); } }).appendTo("body"); })
1,隐藏元素无法获取焦点 2,对于div等特殊元素获取焦点 关于元素获取焦点 body { margin: 32px; font-family: Verdana, sans-serif; font-size: 14px; } .title { font-size: 18px; font-weight: bolder;margin:40px 0; } 关于元素获取焦点: 1,隐藏元素无法获取焦点 下面有个隐藏的Input: 解决方法:先把元素显示,在获取焦点。 2,对于div等特殊元素获取焦点 我是DIV元素,我不带tabindex="-1"。 我是DIV元素,我带tabin...
先来看概念,首先DOM是一棵树,其根节点是Document,大致可以用下图来表示: 所谓“最近的共有祖先元素”,是指给定一系列元素,找出在树中深度最大的,但同时为所有这些元素的祖先元素的元素。 比如上图中,I和G的结果为C,G和H的结果为A,D和E的结果为html,C和B的结果为html等。 测试驱动 对于偏逻辑的题,并没有十足的把握函数是正确的,因此还是先构造测试的用命,力求让函数通过测试。 本次就以上图的结构作为DOM结构,A表示...
标准参考 无。 问题描述 在一个元素的属性中绑定事件,实际上就创建了一个内联事件处理函数(如<h1 onclick="alert(this);"...>...),内联事件处理函数有其特殊的作用域链,并且各浏览器的实现细节也有差异。 造成的影响 如果在元素的内联事件处理函数中使用的变量或调用的方法不当,将导致脚本运行出错。 受影响的浏览器所有浏览器问题分析 1. 内联事件处理函数的作用域链 与其他函数不同,内联事件处理函数的作用域链从头部开始依...
在写程序过程中,经常会遇到去除数组中重复元素的需求。要实现这个功能其实并不难。 我们可以用一个两重循环来实现,对于小的数组,这样做当然并无不妥。 但如果我们的数组比较大,里面的元素有上万个。那么用两重循环,效率是极为低下。 下面我们就用js的特性,编写一个高效去除数组重复元素的方法。 代码如下: 输出结果: 9,1,3,8,7,6,5,4 js数组去重就是把数组中重复的元素去掉: 代码如下: Array.prototype.delRepeat=functi...
代码如下: //语法:prev(element) //参数:element对象 //返回:对象在当前级别中是第几个元素,从1开始 //2010-08-26 15:13:55 function prev(elem,cont) { if(!cont){cont=1} elem = elem.previousSibling; if(elem){return prev(elem,(cont+1))} return cont } prev($("ext-gen232"))
函数如下: 代码如下: foreach = function (obj, insp){ if(obj== null && obj.constructor != Array){ return []; } //obj是要处理的数组,obj==null 表示对象尚未存在;obj.constructor != Array 表示对象obj的属性的构造函数不是数组; //constructor属性始终指向创建当前对象的构造函数。两个条件均满足,则返回空数组[]; //下面对constructor属性作进一步了解。 var obj= [1, 2, 3, 4]; // 等价于 var obj= new Arr...