ajax 修改h2标签内容,异步加载后修改标签默认值

一次临时起意写的jQuery插件,可能唯一不满足你的要求的是,AJAX请求你的参数有两个,你自己看看调整下应该能用。

临时写的,也没设计过,就不要吐槽那组参数什么的了。。。

//简易级联选择器

!function ($) {

"use strict";

var LevelSelect = function (element, options) {

this.$element = element;

var DEFAULT = {

urls : [],

valueFields : [],

textFields : [],

firstValue : '',

firstText : '不限',

params : [],

oneForAll : false

};

this.settings = $.extend({}, DEFAULT, options);

};

var initOptions = function (ele, url, param, value, text) {

$.ajax({

url : url,

type : 'POST',

data : param,

success : function (data) {

if(data && data.length > 0){

for(var i in data) {

var opt = '{2}';

var item = data[i];

opt = opt.replace('{1}', item[value])

.replace('{2}', item[text]);

ele.append(opt);

}

}

}

})

};

LevelSelect.prototype.init = function () {

var _me = this;

var length = _me.$element.length;

if(length > _me.settings.urls.length

|| length > _me.settings.valueFields.length

|| length > _me.settings.textFields.length){

throw Error('Please check param : urls, valueFields and textFields.');

}

_me.$element.each(function (index, ele) {

var $ele = $(ele),

url = _me.settings.urls[index],

param = _me.settings.params[index],

value = _me.settings.valueFields[index],

text = _me.settings.textFields[index],

firstValue = _me.settings.firstValue,

firstText = _me.settings.firstText,

hasNext = (index + 1) <= length,

next = $(_me.$element.get(index + 1)),

nextAll = _me.$element.slice(index + 1);

$ele.empty().append('' + firstText +'');

if (index == 0){

var p = {};

p[param] = 0;

initOptions($ele, url, p, value, text);

}

$ele.change(function () {

nextAll.find('option:gt(0)').remove();

var selected = $(this).val();

if(selected == firstValue){

return;

}

if(hasNext){

var p = {};

p[param] = selected;

initOptions(next, url, p, value, text);

}

});

});

return _me;

};

$.fn.LevelSelect = function (options) {

var levelSelect = new LevelSelect(this, options);

return levelSelect.init();

}

}(jQuery);

//使用

$('#type1, #type2, #type3').LevelSelect({

urls : ['BookTypeList.ashx','BookTypeList.ashx','BookTypeList.ashx'],

valueFields : ['TypeId', 'TypeId', 'TypeId'],

textFields : ['TypeTitle', 'TypeTitle', 'TypeTitle'],

params : ['pId', 'pId', 'pId']

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值