jQuery前台数据获取实现代码_Javascript教程-查字典教程网
jQuery前台数据获取实现代码
jQuery前台数据获取实现代码
发布时间:2016-12-30 来源:查字典编辑
摘要:jProviderData复制代码代码如下:///$j=jQuery.noConflict();(function($j){$j.provi...

jProviderData

复制代码 代码如下:

/// <reference path="jUtil.js" />

$j = jQuery.noConflict();

(function ($j) {

$j.providerData={

defaultSettings: {

select_Span_Items: false,

select_TD_Items: false,

select_LI_Items: false

},

init:function(options){

opts = $j.extend({}, $j.providerData.defaultSettings, options);

singleItemJsonFormat='"{0}":"{1}"';

divItemFormat='{{0}}';

tableItemFormat='{0}';

},

getDataName:function(item){

var dataName = item.attr("dataname");

if(typeof dataName === 'undefined'||dataName==""){

dataName = item.attr("Id");

}

if(typeof dataName === 'undefined'||dataName==""){

dataName=item.text();

}

if(typeof dataName === 'undefined'||dataName==""){

dataName=item[0].innerText;

}

return dataName;

},

getData:function(selector){

//var selector=opts.selector;

var items;

if(typeof selector!=="object"){

items=$j(selector);

}

else{

items=selector;

}

var retJsonValue="";

var subSelector=":input";

if (opts.select_Span_Items) {

subSelector = subSelector + ",span";

}

if (opts.select_LI_Items) {

subSelector = subSelector + ",li";

}

if(opts.select_TD_Items){

subSelector = subSelector + ",td";

}

$j.each(items,function(i,item){

var t=$j(this);

var dataName=$j.providerData.getDataName(t);

//return:'{"dataname":"value"}'

if($j.util.isInput(t)){

var value=t.val();

var itemStr= String.format(singleItemJsonFormat,dataName,value);

retJsonValue=retJsonValue+itemStr+",";

retJsonValue=retJsonValue.trimEnd(",");

}

//return:'{"dataname1":"value1","dataname2":"value2"}'

else if($j.util.isDiv(t)){

var subItems = t.find(subSelector);

var subStr = "";

$j.each(subItems, function (i, subItem) {

//递归调用 处理子元素

var tempSubItemStr = $j.providerData.getData("#"+$j(this).attr("id"));

subStr = subStr + "," + tempSubItemStr;

})

subStr=subStr.trimStart(",");

retJsonValue=String.format(divItemFormat,subStr);

}

//return:'[{"dataname1":"value1","dataname2":"value2"},{"dataname1":"value3","dataname2":"value4"}]'

else if($j.util.isTable(t)){

var trItems=t.find("TR:gt(0)");

//迭代处理Table中的每一行

$j.each(trItems,function(i,trItem){

//处理行,找出行中的要收集数据的元素

var subItems =$j(this).find(subSelector);

var subStr = "";

//迭代处理行中所有需要收集数据的元素

$j.each(subItems,function(i,subItem){

if($j.util.isInput($j(this))){

var tempSubItemStr = $j.providerData.getData("#"+$j(this).attr("id"));

subStr = subStr + "," + tempSubItemStr;

}

else{

//如果是TD元素,且他里面不包含INPUT元素

if( $j.util.isTD($j(this)) && ($j(this).find(":input").length==0)){

var tempSubItemStr = $j.providerData.getData($j(this));

subStr = subStr + "," + tempSubItemStr;

}

}

});

subStr=subStr.trimStart(",");

retJsonValue= retJsonValue+String.format(divItemFormat,subStr)+",";

});

retJsonValue=retJsonValue.trimEnd(",");

retJsonValue="["+retJsonValue+"]";

}

//return:'{"dataname":"value"}'

else if($j.util.isLi(t)){

var value=t.text();

var itemStr= String.format(singleItemJsonFormat,dataName,value);

retJsonValue=retJsonValue+itemStr+",";

retJsonValue=retJsonValue.trimEnd(",");

}

//return:'{"dataname":"value"}'

else if($j.util.isTD(t)){

var value=t.text();

// var rowIndex = t.parent().prevAll().length;

//获取当前列的列索引

var colIndex = t.prevAll().length;

//dataName由列的的列头中dataName属性决定,如果找不到由列头的内容决定

var thItem=t.parent().parent().parent().find("th:eq("+colIndex+")");

if(thItem.length==1){

dataName=$j.providerData.getDataName(thItem);

}

var itemStr= String.format(singleItemJsonFormat,dataName,value);

retJsonValue=retJsonValue+itemStr+",";

retJsonValue=retJsonValue.trimEnd(",");

}

});

return retJsonValue;

}

};

jProviderData=function(options){

$j.providerData.init(options);

return $j.providerData.getData(options.selector);

};

})(jQuery);

复制代码 代码如下:

String.prototype.trimStart = function(trimStr){

if(!trimStr){return this;}

var temp = this;

while(true){

if(temp.substr(0,trimStr.length)!=trimStr){

break;

}

temp = temp.substr(trimStr.length);

}

return temp;

};

String.prototype.trimEnd = function(trimStr){

if(!trimStr){return this;}

var temp = this;

while(true){

if(temp.substr(temp.length-trimStr.length,trimStr.length)!=trimStr){

break;

}

temp = temp.substr(0,temp.length-trimStr.length);

}

return temp;

};

String.prototype.trim = function(trimStr){

var temp = trimStr;

if(!trimStr){temp=" ";}

return this.trimStart(temp).trimEnd(temp);

};

String.format = function () {

if (arguments.length == 0) {

return null;

}

var str = arguments[0];

for (var i = 1; i < arguments.length; i++) {

var re = new RegExp('{' + (i - 1) + '}', 'gm');

str = str.replace(re, arguments[i]);

}

return str;

}

(function ($j) {

$j.util = {

_compareTagName : function (item, tagName) {

return item.attr("tagName").toUpperCase() == tagName.toUpperCase();

},

isTable: function (item) {

return $j.util._compareTagName(item, "TABLE");

},

isDiv: function (item) {

return $j.util._compareTagName(item, "DIV");

},

isInput: function (item) {

return $j.util._compareTagName(item, "INPUT");

},

isSpan: function (item) {

return $j.util._compareTagName(item, "SPAN");

},

isLi: function (item) {

return $j.util._compareTagName(item, "LI");

},

isTD: function (item) {

return $j.util._compareTagName(item, "TD");

}

};

})(jQuery);

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类