日期:2014-05-16  浏览次数:20386 次

JavaScript相关文章推荐

判断js数组包是否包含某个元素
要判断数组中是否包含某个元素,从原理来来说,就是遍历整个数组,然后判断是否相等,我们来造个轮子,名字就山寨PHP的数组函数in_array()

view sourceprint?
1 Array.prototype.in_array = function(e) 

2 { 

3 for(i=0;i<this.length;i++) 

4 { 

5 if(this[i] == e) 

6 return true; 

7 } 

8 return false; 

9 }
或者

view sourceprint?
1 Array.prototype.in_array = function(e) 

2 { 

3 for(i=0;i<this.length && this[i]!=e;i++); 

4 return !(i==this.length); 

5 }
Filed under: JavaScript Array 发表评论 判断一个元素(对象)是否为另一个元素的子元素
js通过contains和compareDocumentPosition方法来确定DOM节点间的关系,判断一个元素(对象)是否为另一个元素的子元素

首先自己写一个:


view sourceprint?
1 function isParent(obj,pobj){ 

2 do{ 

3 obj = obj.parentNode; 

4 if(obj==pobj){ 

5 return true; 

6 } 

7 }while(obj.tagName!='BODY'); 

8 return false; 

9 }
Filed under: JavaScript 未分类 发表评论 js通过classname来获取元素
原生JS有3种方式来获取元素:

getElementById('id')
getElementsByName('name')
getElementsByTagName('tag')
getElementById是获取元素最快的方式,但我们不能给每个HTML元素都加以ID吧,所以我们需要一个很方便的通过classname来获取元素:

view sourceprint?
01 function getElementsByClassName(className,tagName){ 

02 var ele=[],all=document.getElementsByTagName(tagName||"*"); 

03 for(var i=0;i<all.length;i++){ 

04 if(all[i].className==className){ 

05 ele[ele.length]=all[i]; 

06 } 

07 } 

08 return ele; 

09 } 

10 console.log(getElementsByClassName("entry")); 

11 console.log(getElementsByClassName("entry","div"));
Filed under: JavaScript className 前端开发 发表评论 jQuery hasClass(),jQuery判断元素是否含有className
jQuery中的hasClass(selector)

返回值

Boolean



参数

class (String) : 用于匹配的类名,注意不需要加"."

检查当前的元素是否含有某个特定的类,如果有,则返回true。

这其实就是 is("." + class)。我们看下源代码:

view sourceprint?
1 function (selector) { 

2 return this.is("." + selector); 

3 }
Filed under: jQuery javaScript className 发表评论 返回两个数组中不同的元素,求数组反集
有两个数组

view sourceprint?
1 var a=['1','2','3','4'] 

2 var b=['1','2']
如何比较才能返回两个数组中不同的元素,其实就是求两个数组的反集,得到数组c=['3','4']

基本的算法就是比较两个数组的元素,把不同的挑出来放到一个数组里,最后返回该Array



我在上一篇文章中山寨了一个JS版的in_array函数
Filed under: JavaScript Array 发表评论 jquery.add()追加元素
我们先来看下jQuery官方文档上add()方法的使用

1)add(expr)  在原对象的基础上再附加符合指定表达式的jquery对象

2)add(el)  在匹配对象的基础上再附加指定的dom元素。

3)add(els)  在匹配对象的基础上再附加指定的一组对象,els是一个数组。

4)add(html)在匹配对象的基础上再附加指定的一段HTML片段
Filed under: 前端开发, jQuery add 发表评论 jQuery获得元素位置
jquery 中有两个获取元素位置的方法offset()和position(),这两个方法之间有什么异同

offset():

获取匹配元素在当前视口的相对偏移。

返回的对象包含两个整形属性:top 和 left。此方法只对可见元素有效。

.offset()方法可以让我们重新设置元素的位置。这个元素的位置是相对于document对象的。如果对象原先的position样式属性是 static的话,会被改成relative来实现重定位。

position():

获取匹配元素相对父元素的偏移。
Filed under: jQuery 绝对定位 offset 发表评论 javascript获取Dom节点元素
在前端开发中,经常要通过JavaScript来获取页面中某个DOM元素,然后更新该元素的样式、内容等。如何获取要更新的元素,是首先要解决的问题。令人欣慰的是,使用JavaScript获取DOM节点的方法有很多种,这里简单做一下总结:



       1. 通过顶层document节点获取:
Filed under: JavaScript DOM 发表评论 原生JavaScript给元素增加className
jquery的addClass如何用原生javascript实现?

class是元素的属性,所以我们可以通过setAttribute来获取class

这里需要注意的是class在IE中是保留关键字

所以我们获取某个元素的class时需要用className来代替class

className在所有浏览器