`
chhj_292
  • 浏览: 37008 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

table 2 json,没有兴趣写下去了,未完,存档

阅读更多
function Table2JsonBuilder(_tblId){
	var _tbl = document.getElementById(_tblId);
	if(!_tbl){
		return;
	}
	this.table = document.getElementById(_tblId);
	this.tableHeader = new Array();
	this.json = {};
}

Table2JsonBuilder.prototype.extend = function(_destination,_source){
	for (var p in _source) {
		_destination[p] = _source[p];
	}
	return _destination;
}

var Element = new Object();
Element.Methods = {
	findNodes : function(_tagName){
		var _clds = this.childNodes;
		if(!_clds)
			return null;
		var clds = new Array();
		for(var i=0,j=_clds.length; i<j; i++){
			var node = _clds[i];
			if(!node)
				continue;
			if(!node.tagName)
				continue;
			if(node.tagName.toLowerCase() != _tagName.toLowerCase()){
				continue;
			}
			clds.push(node);
		}
		return (clds.length == 0)? null: clds;
	}
}

Table2JsonBuilder.prototype.build = function(){
	this.table = this.extend(this.table,Element.Methods);
	var _theads = this.table.findNodes("thead");
	if(_theads == null || _theads.length == 0){
		alert("错误:该表格为非标准格式[table无thead元素]!");
		return;
	}
	var _thead = _theads[_theads.length - 1];
	if(!_thead.childNodes){
		alert("错误:该表格为非标准格式[thead无任何子元素]!");
		return;
	}
	var _tr = _thead.childNodes[_thead.childNodes.length - 1];
	_tr = this.extend(_tr,Element.Methods);
	var _ths = _tr.findNodes("th");
	if(_ths == null || _ths.length == 0){
		alert("错误:该表格为非标准格式[thead无th元素]!");
		return;
	}
	this.tableHeader = _ths;
	var _tbodys = this.table.findNodes("tbody");
	if(_tbodys == null || _tbodys.length == 0){
		return;
	}
	for(var i=0,j=_tbodys.length; i<j; i++){
		var _tbody = _tbodys[i];
		var _trs =  _tbody.childNodes;
		
		for(var m=0,n=_trs.length; m<n; m++){
			var _tr = _trs[m];
			var _tds = _tr.childNodes;
			
			var els = {};
			for(var o=0,p=_tds.length; o<p; o++){
				var td = _tds[o];
				var a = _ths[m].innerHTML;
				els.a = td.innerHTML;
			}
			
			this.json.tr = els;
		}
	}
}

window.onload = function(){
	var builder = new Table2JsonBuilder("marksTbl");
	builder.build();
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics