仿jQuery.each()方法遍历对象(DOM、 Array、JSON、String)

本文介绍了一种在JavaScript中自定义对象和DOM元素遍历的方法。通过扩展Object.prototype和String.prototype,实现了对不同类型的对象进行遍历的功能,并提供了具体的使用示例。

HTML : 

<span class="p1">A</span>
<span class="p2">B</span>
<span class="p3">C</span>
<span class="p4">D</span>

Javascript:

Object.prototype.each = String.prototype.each = function(fn) { 
	for (var i in this) {
	 	if (this.hasOwnProperty(i)) {  	
			if(typeof(this[i]) == "object") {
				fn(i, this[i]);
			} else { 
				try { 
					if(!this[0].nodeName) fn(i, this[i]);
				}
				catch (e) { 
					fn(i, this[i]);
				}				
			}
		}
	}
}

//遍历DOM对象
var arr = document.getElementsByTagName("span");
arr.each(function(index, obj) {
	console.log(index, obj, "className =>", obj.className);
});

//遍历数组
[2,3,5].each(function(index, obj) {
	console.log(index, "=>", obj);
});

//遍历JSON序列对象
var json = {name : "pandao", job : "2D(Web/UI Designer & Web Developer)", length : [1,2,3,4], dom : {nodeName : "span"}, callback : new Function};
json.each(function(index, obj) {
	console.log(index, "=>", obj);

	//嵌套遍历
	if(typeof (obj) == "object") {
		obj.each(function(i, o) {
			console.log("    ", index+"."+i, "=>", o);
		});
	}
});

//遍历字符串
'<script type="text/javascript">'.each(function(index, str) {
	console.log(index, "=>", str);
});

转载于:https://my.oschina.net/pandao/blog/119300

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值